Vue中的v-指令使用小結
前言
在前端Vue.js 開發的時候,使用瞭基於 HTML 的模板語法,允許開發者聲明式地將 DOM 綁定至底層 Vue 實例的數據。所有 Vue.js 的模板都是合法的 HTML,所以能被遵循規范的瀏覽器和 HTML 解析器解析。 開發者比較熟悉的Vue.js 的數據綁定常用的方式就是使用“Mustache”語法 (雙大括號) 的文本插值,Mustache 標簽將會被替代為對應數據對象上 msg property 的值。無論何時何地,綁定的數據對象上 msg property 發生瞭改變,插值處的內容都會跟著更新改變,通過使用v-once指令也能執行一次性地插值,當數據改變時插值處的內容不會更新。本篇博文就來分享一下關於v-指令使用的相關內容。
一、Vue.js常用的v-指令
1、v-html 指令
v-html 指令用於輸出 html 代碼的,具體使用如下所示:
<div class="email-content"> <p v-html="templatePack"></p> //templatePack是html代碼路徑 </div>
2、v-text 指令
v-text 指令是用於輸出文本的,具體使用如下所示:
<thead> <th class="table-header-th" v-for="(cell, colIndex) in header" :key="colIndex"> <span class="table-header" v-text="cell.value"></span> //輸出cell.value的值 </th> </thead>
3、v-once指令
通過使用v-once指令,一次性地插值,當數據改變時,插值處的內容不會更新,具體使用如下所示:
<span v-once> {{ msg }}</span> //msg的值不變
4、v-if 指令
v-if 指令是實現條件渲染,插入或者移除元素(true插入, false移除),具體使用如下圖所示:
v-else指令保證同級節點存在v-if || v-else-if,搭配v-if使用的,必須緊跟在v-if或者v-else-if後面,否則不起作用,具體使用如下圖所示:
註意:v-if和v-else 隻會不能並存,隻能存在其一。
v-else-if指令是充當v-if的else-if塊,可以鏈式的使用多次,可以在標簽中更加方便的實現switch語句的功能。
5、v-show指令
v-show指令是用來隱藏或者顯示元素的,具體使用如下所示:
<van-loading class="loading-bg" type="spinner" size="24px" v-show="httpLoading"/> //根據httpLoading的bool值來判斷是否顯示
6、v-on指令
v-on指令是用來進行事件綁定的, 可用@來代替,具體使用如下所示:
<div class="header-bg" @click="toInterviewResume"> //給div標簽綁定點擊事件,使用@來代替v-on
7、v-for指令
v-for指令實現的是循環語法,也就是for循環的功能,具體使用如下所示:
8、v-bind指令
v-bind指令是用來實現屬性綁定的,它可以簡寫,具體使用如下所示:
<img v-bind:src="imgSrc”> //v-bind 未簡寫 <img :src="imgSrc"> //v-bind 簡寫
9、v-model指令
v-model指令是用來實現雙向數據綁定的,具體使用如下所示:
二、Vue.js不常用的v-指令
1、v-pre指令
v-pre指令是用來不解析數據的,具體使用如下所示:
<span class="table-header" v-pre>{{hello world}}</span> //顯示效果為:{{hello world}}
2、v-cloak指令
v-cloak指令是:vue解析前,v-cloak會存在於頁面;vue解析完成 ,v-cloak消失。它能夠解決插值表達式閃爍的問題,具體使用如下所示:
//css樣式 [v-cloak]{ display:none; color:red; } .... <span v-cloak>Loading…</span>
三、Vue.js的自定義指令
除瞭上面的核心功能默認內置的指令,Vue.js也允許註冊自定義指令。在 Vue2.0 中,代碼復用和抽象的主要形式是組件,但是有的情況下,仍然需要對普通 DOM 元素進行底層操作,這時候就會用到自定義指令。
1、自定義的v-focus指令
場景:當頁面加載時,讓輸入框獲得焦點。
隻要在打開這個頁面後還沒點擊過任何內容的時候,這個輸入框就應當還是處於聚焦狀態,這裡使用v-focus指令來實現該需求,具體使用如下所示:
// 註冊全局自定義指令 `v-focus` Vue.directive('focus', { // 當被綁定的元素將要插入到 DOM 中時 inserted: function (el) { // 聚焦對應的元素 el.focus(); } }); //在輸入框使用的地方使用上述自定義指令 <input v-focus>
2、自定義的對象字面量指令
場景:如果指令需要有多個值,可傳入一個 JavaScript 對象字面量,但是該指令函數能夠接受所有合法的 JavaScript 表達式。具體使用如下所示:
<span v-demo="{ color: ‘red', text: 'hello world!' }"></span> Vue.directive('demo', function (el, binding) { // console.log(binding.value.color); // 輸出結果“red” console.log(binding.value.text); //輸出結果 "hello world!" });
最後
通過上面介紹的v-指令的各種使用場景,在Vue.js開發中的使用就遊刃有餘瞭,這也是在開發過程中必用的功能,尤其是對於初級開發者來說,更應該掌握這種操作場景的使用,這裡不再贅述。
到此這篇關於Vue中的v-指令使用的匯總的文章就介紹到這瞭,更多相關Vue中v-指令使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Vue指令的學習
- Vue過濾器與內置指令和自定義指令及組件使用詳解
- vue2.x與vue3.x中自定義指令詳解(最新推薦)
- vue如何將字符串的一部分處理為html文檔並渲染到頁面
- Vue自定義指令詳解