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!

推薦閱讀: