這篇文章將為大家詳細講解有關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 組合模板,可以重新考慮通過是否通過使用組件來替代。
注意:在網站上動態渲染任意 HTML 是非常危險的,因為容易導致XSS攻擊。只在可信內容上使用v-html,永不用在用戶提交的內容上。
實例:
<div id="app">
<p v-html="message"></p>
</div>
<script>
new Vue({
el:'#app',
data: {
message:'<h6>hello vue.js</h6>'
}
});
</script>2.條件渲染 控制模板隱藏:v-show 、v-if、v-else
2.1 v-show
用法:根據表達式之真假值,切換元素的 display CSS 屬性。當條件變化時該指令觸發過渡效果。
注意: 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> ,
將提出它的內容作為條件塊。當條件變化時該指令觸發過渡效果。
實例:
<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 渲染循環列表
用法:基于源數據多次渲染元素或模板塊。此指令之值,必須使用特定語法 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綁定事件
用法:
綁定事件監聽器。事件類型由參數指定。表達式可以是一個方法的名字或一個內聯語句,如果沒有修飾符也可以省略。
用在普通元素上時,只能監聽 原生 DOM 事件。用在自定義元素組件上時,也可以監聽子組件觸發的自定義事件。
在監聽原生 DOM 事件時,方法以事件為唯一的參數。如果使用內聯語句,語句可以訪問一個 $event 屬性:
修飾符:
.stop - 調用 event.stopPropagation()。
.prevent - 調用 event.preventDefault()。
.capture - 添加事件偵聽器時使用 capture 模式。
.self - 只當事件是從偵聽器綁定的元素本身觸發時才觸發回調。
.{keyCode | keyAlias} - 只當事件是從偵聽器綁定的元素本身觸發時才觸發回調。
.native - listen for a native event on the root element of component.
.once - 觸發一次。
.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">執行一次</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 綁定屬性
用法:
動態地綁定一個或多個特性,或一個組件 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 :></div>
<div :></div>關于Vue.js中有哪些常用的指令就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。