zoukankan      html  css  js  c++  java
  • yb课堂 新版VueCli 4.3创建vue项目,Vue基础语法入门 《二十九》

    Vue模版语法开发起步

    • 基于HTML的模版语法,允许声明式地将DOM绑定至底层Vue实例的数据
    • 用简洁的模版语法来声明式的将数据渲染进DOM的系统
    • 结合响应系统,在应用状态改变时,Vue能够智能地计算出重新渲染组件并应用到DOM操作上

    简单入门

    1.html

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
                <p>{{message}}</p>
            </div>
            <script>
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                        message:"欢迎学习Vue"
                    }
                })
            </script>
        </body>
    </html>

    {{}}

    • 文本插值
    • 里面JavaScript表达式
    {{5+5}}
    {{message.split('').reverse().join('')}}

    Vue指定和参数

    讲解什么是Vue指令

    指令:带有V-前缀的特殊属性。指令用于在表达式的值改变时,将某些行为应用到DOM

    • v-bind 指令
      • HTML属性中的值更新时使用
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
                <p>{{message}}</p>
                <p>{{5+5+2}}</p>
                <p>{{message.split('').reverse().join('')}}</p>
                <p><a v-bind:href="url">百度一下试试看</a> </p>
            </div>
            <script>
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                        message:"欢迎学习Vue",
                        url:'http://www.baidu.com'
                    },
                    methods:{ //自定义方法
    
                    }
                })
            </script>
        </body>
    </html>
    • v-if v-else 指令
      • 逻辑判断
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
                <div v-if="Math.random()>0.5">大于0.5</div>
                <div v-else>小于0.5</div>
            </div>
            <script>
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                    },
                    methods:{ //自定义方法
    
                    }
                })
            </script>
        </body>
    </html>
    • v-model 指令
      • 实现双向数据绑定
      • 一般在input、select、textarea、checckbox、radio等表单上使用
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
               <p>{{phone}}</p>
               手机号<input v-model="phone"/>
            </div>
            <script>
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                        phone:"0000"
                    },
                    methods:{ //自定义方法
    
                    }
                })
            </script>
        </body>
    </html>
    • v-for 循环指令
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
                <ol>
                    <li v-for="user in users">{{user.name}}</li>
                </ol>
            </div>
            <script>
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                        users:[
                            {name:"Anna小姐姐"},
                            {name:"老王"},
                            {name:"小陈"}
                        ]
                    },
                    methods:{ //自定义方法
    
                    }
                })
            </script>
        </body>
    </html>
    • v-on 指令
      • 监听时间,并对用户的输入进行响应
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
               <p>{{title}}</p>
               <button v-on:click="changeTitle">完善标题</button>
            </div>
            <script>
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                        title:"面试专题课程"
                    },
                    methods:{ //自定义方法
                        changeTitle:function(){
                            this.title=" || yb课堂 2020年 "+this.title;
                        }
                    }
                })
            </script>
        </body>
    </html>

    常见v-bind和v-on缩写

    v-bind缩写

    <!-- 完整语法 -->
    <a v-bind:href="url" > 点我一下 </a>
    
    <!--缩写 -->
    <a :href="url" > 点我一下 </a>

    v-on缩写

    <!-- 完整语法 -->
    <a v-on:cliick="changeTitle">点我一下</a>
    
    <!-- 缩写 -->
    <a @cliick="changeTitle">点我一下</a>

    参数:在指令后以冒号指令,例如v-bind指令被用来响应地更新HTML属性

    Vue里面的组件(多次复用

    • vue的组件
      • 扩展HTML元素,封装可重用的代码(就是通用的模块)
    • 注册组件
      • Vue.component(组件名,选项)
    • 组件可以拷贝多次,复用多次
      • 每个组件都会各自独立维护它的数据
      • data必须是一个函数,而不是前面讲的json对象
        • 每个实例可以维护一份被返回对象的独立的拷贝,否则数据就会共享出现问题
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
               <yb_component></yb_component>
            </div>
            <script>
                Vue.component('yb_component',{ //定义组件
                    data:function(){ //组件的数据源
                        return {
                            count:0
                        }
                    },
                    template:'<button @click="count++"> 点击{{count}}次 </button>' //定义一个模版
                })
    
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                        
                    },
                    methods:{ //自定义方法
                        
                    }
                })
            </script>
        </body>
    </html>

    通过prop向子组件传值

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>yb课堂快速入门</title>
            <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        </head>
        <body>
            <div id="app">
               <yb_component message="yb课堂 欢迎学习Vue "></yb_component>
            </div>
            <script>
                Vue.component('yb_component',{ //定义组件
                    props: {
                        message:{
                            type:String
                        }
                    },
                    data:function(){
                        return {
                            count:0
                        }
                    },
                    template:'<button @click="count++">{{message}} 点击{{count}}次 </button>' //定义一个模版,组件里的template只能包含一个根节点
                })
    
                new Vue({
                    el:'#app', //绑定到那个元素
                    data:{ //数据源
                        
                    },
                    methods:{ //自定义方法
                        
                    }
                })
            </script>
        </body>
    </html>
    作者:陈彦斌

    个性签名:没有学不会的技术,只有不学习的人!
    联系方式:543210188(WeChat/QQ),推荐WeChat
  • 相关阅读:
    atom无法安装插件的解决方法之一
    css3伪类温故知新
    flex 布局笔记
    NPM 无法下载任何包的原因,解决方法
    flex align-content中的描述的“多根轴线的对齐方式”中的“多根轴线”到底是什么
    nodejs express 静态文件的路径
    当函数传入参数是引用类型的几种情况和现象。
    关于NODE NPM 输入命令后没反应的问题
    no input file specified
    获取form提交的返回值
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/13337862.html
Copyright © 2011-2022 走看看