Vue.js常用指令的使用小結
1.數據渲染:v-text、v-html、{{}}
1.1 v-text
詳細:更新元素的 textContent。如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值。
實例:
<div id="app"> <p v-text="message"></p> </div> <script> new Vue({ el:'#app', data: { message:'Hello World!' } }); </script>
1.2 {{}} 和上面的v-text效果一樣
實例:
<div id="app"> <p>{{message}}</p> </div> <script> new Vue({ el:'#app', data: { message:'Hello World!' } }); </script>
1.3 v-html
詳細:更新元素的 innerHTML 。注意:內容按普通 HTML 插入 - 不會作為 Vue 模板進行編譯 。如果試圖使用v-html 組合模板,可以重新考慮通過是否通過使用組件來替代。
注意:在網站上動態(tài)渲染任意 HTML 是非常危險的,因為容易導致XSS攻擊。只在可信內容上使用v-html,永不用在用戶提交的內容上。
實例:
<div id="app"> <p v-html="message"></p> </div> <script> new Vue({ el:'#app', data: { message:'<h5>hello vue.js</h5>' } }); </script>
2.條件渲染 控制模板隱藏:v-show 、v-if、v-else
2.1 v-show
用法:根據表達式之真假值,切換元素的 display CSS 屬性。當條件變化時該指令觸發(fā)過渡效果。
注意: v-show 不支持 <template> 語法
實例:
<div id="app"> <p v-show="isShow"> show </p> </div> <script> new Vue({ el:'#app', data: { isShow:true } }); </script>
2.2 v-if
v-show和v-if大體效果相同,不同的是:v-show的元素會始終渲染并保持在DOM中。
用法:根據表達式的值的真假條件渲染元素。在切換時元素及它的數據綁定 / 組件被銷毀并重建。如果元素是 <template> ,
將提出它的內容作為條件塊。當條件變化時該指令觸發(fā)過渡效果。
實例:
<div id="app"> <p v-if="isShow"> show </p> </div> <script> new Vue({ el:'#app', data: { isShow:false } }); </script>
2.3 v-else
限制:前一兄弟元素必須有 v-if 或 v-else-if
用法:為v-if 或者v-else-if 添加 “else 塊”
<div id="app"> <p v-if="isShow">show</p> <p v-else>hide</p> </div> <script> new Vue({ el:'#app', data: { isShow:true } }); </script>
2.4 v-else-if
<div id="app"> <p v-if="type === 'a'">A</p> <p v-else-if="type==='b'">B</p> <p v-else>C</p> </div> <script> new Vue({ el:'#app', data: { type:'b', } }); </script>
3. v-for 渲染循環(huán)列表
用法:基于源數據多次渲染元素或模板塊。此指令之值,必須使用特定語法 alias in expression ,為當前遍歷的元素提供別名:
v-for 默認行為試著不改變整體,而是替換元素。迫使其重新排序的元素,您需要提供一個key 的特殊屬性:
實例:
<body> <div id="app"> <ul> <li v-for="item in items" :key="item.id">{{item.name}}</li> </ul> </div> <script> new Vue({ el:'#app', data: { items:[ {name:'hxl'}, {name:'zp'}, {name:'hxlzp'}, ], } }); </script>
4. v-on綁定事件
用法:
綁定事件監(jiān)聽器。事件類型由參數指定。表達式可以是一個方法的名字或一個內聯語句,如果沒有修飾符也可以省略。
用在普通元素上時,只能監(jiān)聽 原生 DOM 事件。用在自定義元素組件上時,也可以監(jiān)聽子組件觸發(fā)的自定義事件。
在監(jiān)聽原生 DOM 事件時,方法以事件為唯一的參數。如果使用內聯語句,語句可以訪問一個 $event 屬性:
修飾符:
.stop - 調用 event.stopPropagation()。
.prevent - 調用 event.preventDefault()。
.capture - 添加事件偵聽器時使用 capture 模式。
.self - 只當事件是從偵聽器綁定的元素本身觸發(fā)時才觸發(fā)回調。
.{keyCode | keyAlias} - 只當事件是從偵聽器綁定的元素本身觸發(fā)時才觸發(fā)回調。
.native - listen for a native event on the root element of component.
.once - 觸發(fā)一次。
.left - (2.2.0+) only trigger handler for left button mouse events.
.right - (2.2.0+) only trigger handler for right button mouse events.
.middle - (2.2.0+) only trigger handler for middle button mouse events.
.passive - (2.3.0+) attaches a DOM event with { passive: true }.
實例:
<div id="app"> <!--方法處理器--> <button v-on:click="doSomething">方法處理器</button> <!--內聯語句--> <button v-on:click="doSomething('Vue.js!',$event)">內聯語句</button> <!--縮寫--> <button @click="doSomething">縮寫</button> <!--停止冒泡--> <button @click.stop="doSomething">停止冒泡</button> <!--阻止默認行為--> <button @click.prevent="doSomething">阻止默認行為</button> <!--串聯修飾符--> <button @click.stop.prevent="doSomething">串聯修飾符</button> <!--鍵修飾符,鍵別名--> <input @keyup.enter="onEnter" placeholder="回車鍵" v-model="msg"> <button v-on:click.once="doSomething">執(zhí)行一次</button> </div> <script> new Vue({ el:'#app', data: { name:'vue.js', msg:'' }, //在methods對象中定義方法 methods:{ doSomething:function (event) { //方法中的this指向Vue實例 alert(this.name) }, onEnter:function (event) { this.msg = '按下了回車鍵' } }, }); </script>
5.v-bind 綁定屬性
用法:
動態(tài)地綁定一個或多個特性,或一個組件 prop 到表達式。
在綁定 class 或 style 特性時,支持其它類型的值,如數組或對象??梢酝ㄟ^下面的教程鏈接查看詳情。
在綁定 prop 時,prop 必須在子組件中聲明??梢杂眯揎椃付ú煌慕壎愋?。
沒有參數時,可以綁定到一個包含鍵值對的對象。注意此時 class 和 style 綁定不支持數組和對象。
修飾符:
.prop - 被用于綁定 DOM 屬性。
.camel - (2.1.0+) transform the kebab-case attribute name into camelCase.
.sync - (2.3.0+) a syntax sugar that expands into a v-on handler for updating the bound value.
實例:
<!-- 綁定一個屬性 --> <img v-bind:src="imageSrc"> <!-- 縮寫 --> <img :src="imageSrc"> <!-- with inline string concatenation --> <img :src="'/path/to/images/' + fileName"> <!-- class 綁定 --> <div :class="{ red: isRed }"></div> <div :class="[classA, classB]"></div> <div :class="[classA, { classB: isB, classC: isC }]"></div> <!-- style 綁定 --> <div :style="{ fontSize: size + 'px' }"></div> <div :style="[styleObjectA, styleObjectB]"></div>
以上所述是小編給大家介紹的Vue.js常用指令的使用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
使用vue-cli創(chuàng)建項目的圖文教程(新手入門篇)
這篇文章主要介紹了新手入門vue 使用vue-cli創(chuàng)建項目的圖文教程,本文是針對完全不了解過vue和npm的小白而寫的,需要的朋友可以參考下2018-05-05