Vue模板指令

mvvm

vm是什么?

viewmodel 的簡寫 用來連接同步view試圖層和model層 監(jiān)聽model層數(shù)據(jù)的變化 從而改變view頁面展示出來的數(shù)據(jù)

插值表達(dá)式的作用是什么

渲染data數(shù)據(jù)

v-text作用?

v-開頭的都是命令 添加在屬性欄 v-text同樣可以對(duì)內(nèi)容進(jìn)行修改 數(shù)據(jù)展示

v-text 和 v-html區(qū)別?

兩個(gè)的使用場景 都是 在標(biāo)簽屬性里面寫
v-text 不可以解析標(biāo)簽 v-html 可以解析標(biāo)簽 但是表達(dá)式不安全 不建議使用

        <p v-text='name'></p>
       <p v-html='html'></p> 
v-bind 是綁定給誰的?

綁定標(biāo)簽的屬性

        <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}">測(cè)試屬性綁定</p>
v-for 循環(huán)數(shù)組 對(duì)象的 幾種寫法?
        <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的作用?

只刷新被改變的那一部分 提高性能優(yōu)化

:key的用法?

在v-for=''后面添加:key='一個(gè)唯一的標(biāo)識(shí)符一般是item.name//index'

修改/添加數(shù)組的內(nèi)容的方法

// 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 修改數(shù)組的長度
vm.items.splice(indexOfItem, 1, newValue)
vm.arr.splice(0, 1)
增加vm.arr.push('newarr')

v-model:實(shí)現(xiàn)雙向數(shù)據(jù)綁定

作用 視圖層和數(shù)據(jù)層是綁定在一起的 不管改變哪一個(gè) 數(shù)據(jù)都是同步改變的 僅限使用于input textarea select這三種標(biāo)簽中

<input type="text" v-model='name'>{{name}}
        <!-- textarea/input/selsect使用 -->
v-on:用來監(jiān)聽 綁定dom事件

在methods屬性中定義函數(shù)
如果想要獲取data中的屬性 需要加上this 表示的是vue實(shí)例

  • 1.綁定事件 兩種寫法(可以簡寫)
  • 2.stop阻止冒泡 prevent阻止默認(rèn)跳轉(zhuǎn)
  • 3.@keyup:enter按鍵事件
        <button v-on:click='changeMsg'>點(diǎn)擊改變事件</button>
        <button @click="changeMsgBy('小傻瓜')">可以傳參</button>
        <button @click='getEvent($event)'>事件對(duì)象</button>
        <a  @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() {//點(diǎn)擊改變data里面的name的值 固定是‘小可愛’
                   this.name='小可愛',
               },
               changeMsgBy(arg){//直接傳參  改變data里面的name的值  想傳什么都可以
                   this.name=arg
               },
               getEvent(e){//打印出來的是點(diǎn)擊對(duì)象  可以用來獲取e.keyCode鍵碼,或者位置等信息
                   console.log(e)
               },
               submit(){//按鍵按下的時(shí)候觸發(fā)該事件  
                   console.log('enter')
               }
           }
   })
v-if --- v-show

用來控制元素的顯示和隱藏 v-if='布爾值true/false'
區(qū)別:

  • v-if通過控制dom (標(biāo)簽隱藏)
  • v-show是通過控制樣式(display:none)涉及大量操作DOM的時(shí)候 用v-show 涉及到異步數(shù)據(jù)渲染的時(shí)候就要使用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直接使用指令去進(jìn)行操作頁面上的 DOM元素

解決頁面加載{{}}閃爍問題

寫一個(gè)style樣式
[v-click]{
display:none
}
然后給標(biāo)簽添加v-click指令就可以了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容