美文网首页
3.vue指令

3.vue指令

作者: 悟空你又瘦了 | 来源:发表于2017-06-13 17:01 被阅读0次
    • {{ xxx }} 插值表达式
    <div id="app">  
            {{ msg }}  <!-- 插值表达式:纯粹是展示一些字符串 -->        
        </div>  
        <script>
    var vm = new Vue({
        el:'#app',   // 表示vm对象将来操作的view的区域是 app的这个div中的所有指令
        data:{
            msg:'王建军'   //称之为MVVM中的 Model
        }
    });
        </script>
    
    • v-text(读取文本不能读取html标签)和v-html(能读取html标签)
    <body>
        <div id="app">
            {{ msg }}  <!-- 插值表达式:纯粹是展示一些字符串 -->
            <span v-text="msg"></span>
            <div v-html="htmlMsg"></div>
        <button v-on:click="changeMsg">改变msg的值</button>
        </div>
        <script>
    // vm对象就是MVVM中的VM这个角色
    var vm = new Vue({
        el:'#app',   
        data:{
            msg:'hello vue',   //称之为MVVM中的 Model
            htmlMsg:'<h1>带有html标签的数据</h1>'
        },
        //定义方法
        methods:{
            changeMsg:function(){
                //这里只需要修改模型数据msg,就会自定刷新指令中使用的这个msg的地方的值
                //注意点:在方法中写的this其实就是vm这个对象
                this.msg = '我爱你们';
            }
        }
    });
        </script>
    
    • v-model 双向数据绑定(input文本框里面的数值)
        <div id="app">
            <!-- 实现一个加法计算 -->
            <!-- 对于文本框而言不能使用v-text或者v-html,而使用v-model 
            当通过v-model来绑定视图和模型的时候,当视图中的数据有改变会自动同步到
            模型中的数据,反之亦然 (专业术语就是双向数据绑定)-->
            <input type="text" v-model="v1" > + <input type="text" v-model="v2" > 
            <button v-on:click="add">=</button> 
            {{res}}
        </div>
        <script>
        new Vue({
            el:'#app',
            data:{
                v1:1,
                v2:2,
                res:0
            },
            methods:{
                add:function(){
                    this.res = (this.v1-0) + (this.v2-0);
                }
            }
        });
        </script>
    
    • 防止闪烁v-text /v-html/v-cloak(配合 css选择器[v-cloak]来实现)
    1、使用 v-cloak来解决花括号闪烁,一般会用在比较大的段落
    css里:
    [v-cloak]{display:none;}
    v-cloak直接加在代码里
    <div v-cloak>{{msg}}</div>
    
    2、{{msg}}   与 v-text=msg  等价
    
    <span>{{msg}}</span>
    
    <span v-text="msg"></span>  //防止闪烁
    
    3、转义时{{{msg}}}  与 v-html等价
    
    <span>{{{msg}}} </span>  //转义
    
    <span v-html="msg"></span>  //防止闪烁
    
    

    数据渲染

     - 特点:在vue1.0版本中可以通过$index获取到索引值,而在vue2.0中被移除掉了
        可以使用track-by="$index"来标记一个当前遍历模板所生产的dom对象的唯一性   
     - 总结:当一个数据中的值是允许重复的时候,需要在使用v-for的同时加上 track-by="$index"  
     body>  
        <div id="app">
            <ul>
                <li v-for="item in list" track-by="$index">{{item}}</li> ----保证唯一性
            </ul>
            <button v-on:click="addListValue">添加一个值</button>
        
            <table>
                <tr>
                    <th>编号</th>
                    <th>名称</th>
                    <th>年龄</th>
                </tr>
                <tr v-for="user in list1">
                    <td>{{ $index + 1  }}</td>------获取索引
                    <td>{{user.name}} -- <span v-text="user.name"></span></td>
                    <td>{{user.age}}--  <span v-html="user.age"></td>
                </tr>
            </table>
        </div>
    
        <script>
    new Vue({
        el:'#app',
        data:{
            list:[1,2,3,4,4],
            list1:[{id:1,name:'ivan',age:31},{id:2,name:'rose',age:28}]
        },
        methods:{
            addListValue:function(){
                this.list.push(4);
            }
        }
    });
        </script>
    
    v-if是动态的向DOM树内添加或者删除DOM元素;
    v-show是通过设置DOM元素的display样式属性控制显隐;
    <body>  
        <div id="app">
            <!-- 利用v-if实现 当年龄大于30的时候显示这个人的信息
            在VM调度的时候直接不解析 -->
            <div v-if="user.age >30 ">
                {{user.name}}   ---->  {{user.age}}
            </div>
            <hr />
            <!-- 利用v-show 当年龄大于30的时候显示这个人的信息
             v-show :仅仅是将当前dom元素添加style="display:none"的样式控制他隐藏-->
            <div v-show="user.age >30 ">
                {{user.name}}   ---->  {{user.age}}
            </div>
        </div>
        <script>
    new Vue({
        el:'#app',
        data:{
            user:{name:'ivan',age:40}
        }   
    });
        </script>
    </body>
    

    属性绑定

    • v-bind
    • v-bind作用:可以给一个dom元素绑定任何的属性
    1. v-bind的完整写法:
        <input type="text" v-bind:title="titleVal" >
    2. v-bind的简单写法:
        <input type="text" :title="titleVal" >
    3. v-bind的特殊写法:
        原因是在绑定某些属性的时候,这个属性值由固定的字符串加上一个变量来组成的
        那么这个时候如果使用 :href=“getnews”+id 那么id是找不到的
        所以应该使用:
        v-bind="{href:'getnews/'+id}" 写我们的id才会获取到
    
    

    绑定class style src title 具体用法

    事件绑定

    • v-on
    1.事件监听
    2.调用方法
    3.修饰符(事件,按键,系统)
    

    v-on官方具体用法

    相关文章

      网友评论

          本文标题:3.vue指令

          本文链接:https://www.haomeiwen.com/subject/frndqxtx.html