美文网首页
Vue模板指令

Vue模板指令

作者: mylove_慧儿 | 来源:发表于2018-08-09 18:35 被阅读0次

    mvvm

    vm是什么?

    viewmodel 的简写 用来连接同步view试图层和model层 监听model层数据的变化 从而改变view页面展示出来的数据

    插值表达式的作用是什么

    渲染data数据

    v-text作用?

    v-开头的都是命令 添加在属性栏 v-text同样可以对内容进行修改 数据展示

    v-text 和 v-html区别?

    两个的使用场景 都是 在标签属性里面写
    v-text 不可以解析标签 v-html 可以解析标签 但是表达式不安全 不建议使用

            <p v-text='name'></p>
           <p v-html='html'></p> 
    
    v-bind 是绑定给谁的?

    绑定标签的属性

            <img v-bind:src="imgsrc" alt="" width="100px">
     **bind可省略**   <img :src="imgsrc" alt="" width="100px">
       
            <a :href="'del.php?id='+id">删除</a>
    
            <p :class="{'red':true}">测试属性绑定</p>
    
    v-for 循环数组 对象的 几种写法?
            <h1>v-for='item in arr'</h1>
            <p v-for='item in arr'  :key='item.name'>{{item.name}}:{{item.age}}</p>
           
            <h1>v-for='(vlue,index) in arr'</h1>
            <p v-for='(item,index) in arr ' :key='index'>{{item.name}}:{{item.age}}:'索引'{{index}}</p>
           
            <h1>v-for='vlue in obj'</h1>
            <p v-for='vlue in obj' :key='vlue'>{{vlue}}</p>
    
            <h1>v-for='(vlue,key,index) in obj'</h1>
            <p v-for='(vlue,key,index) in obj' :key='vlue'>{{vlue}}:{{key}}:+'索引'{{index}}</p>
    
    在v-for=''后面 添加:key的作用?

    只刷新被改变的那一部分 提高性能优化

    :key的用法?

    在v-for=''后面添加:key='一个唯一的标识符一般是item.name//index'

    修改/添加数组的内容的方法

    // Vue.set 修改arr的属性
    Vue.set(vm.items, indexOfItem, newValue)/vm.$set(vm.items, indexOfItem, newValue)
    Vue.set(vm.arr, 0, {name:'小混混',age:28})

    // Array.prototype.splice 修改数组的长度
    vm.items.splice(indexOfItem, 1, newValue)
    vm.arr.splice(0, 1)
    增加vm.arr.push('newarr')

    v-model:实现双向数据绑定

    作用 视图层和数据层是绑定在一起的 不管改变哪一个 数据都是同步改变的 仅限使用于input textarea select这三种标签中

    <input type="text" v-model='name'>{{name}}
            <!-- textarea/input/selsect使用 -->
    
    v-on:用来监听 绑定dom事件

    在methods属性中定义函数
    如果想要获取data中的属性 需要加上this 表示的是vue实例

    • 1.绑定事件 两种写法(可以简写)
    • 2.stop阻止冒泡 prevent阻止默认跳转
    • 3.@keyup:enter按键事件
            <button v-on:click='changeMsg'>点击改变事件</button>
            <button @click="changeMsgBy('小傻瓜')">可以传参</button>
            <button @click='getEvent($event)'>事件对象</button>
            <a href="http://www.baidu.com" @click.prevent='changeMsg'>百度</a>
            <input @keyup.13='submit'>
            <input @keyup.enter='getEvent($event)'>
    
       var vm = new Vue({
           el:'#vm',
           data:{
               name:'zs',
               age:18,
               html:"<h3>哈哈哈哈</h3>",
               imgsrc:'../img/shui.jpg',
               arr:[ ],
               obj:{ }
           },
           methods:{
                changeMsg() {//点击改变data里面的name的值 固定是‘小可爱’
                       this.name='小可爱',
                   },
                   changeMsgBy(arg){//直接传参  改变data里面的name的值  想传什么都可以
                       this.name=arg
                   },
                   getEvent(e){//打印出来的是点击对象  可以用来获取e.keyCode键码,或者位置等信息
                       console.log(e)
                   },
                   submit(){//按键按下的时候触发该事件  
                       console.log('enter')
                   }
               }
       })
    
    v-if --- v-show

    用来控制元素的显示和隐藏 v-if='布尔值true/false'
    区别:

    • v-if通过控制dom (标签隐藏)
    • v-show是通过控制样式(display:none)涉及大量操作DOM的时候 用v-show 涉及到异步数据渲染的时候就要使用v-if
            <p v-if='true'>v-if</p>
            <p v-show='isvisible'>v-show</p>
    
            <p v-if='type==="A"'>A</p>
            <p v-else-if='type==="B"'>B</p>
            <p v-else>not A/B/C/D</p>
    
    使用vue和jquery控制dom的不同之处?

    vue直接使用指令去进行操作页面上的 DOM元素

    解决页面加载{{}}闪烁问题

    写一个style样式
    [v-click]{
    display:none
    }
    然后给标签添加v-click指令就可以了

    相关文章

      网友评论

          本文标题:Vue模板指令

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