Vue 內置指令


1.指令 (Directives): 是帶有 v- 前綴的特殊屬性, 職責是,

             當表達式的值改變時, 將其產生的連帶影響,響應式地作用於 DOM。

 

2.HTML DOM 節點

   在 HTML DOM (Document Object Model) 中 , 每一個元素都是 節點:

  • 文檔是一個文檔。
  • 所有的HTML元素都是元素節點。
  • 所有 HTML 屬性都是屬性節點。
  • 文本插入到 HTML 元素是文本節點。are text nodes。
  • 注釋是注釋節點。

   Document 對象

     當瀏覽器載入 HTML 文檔, 它就會成為 document 對象。

     document 對象是HTML文檔的根節點與所有其他節點(元素節點,文本節點,屬性節點, 注釋節點)。

     Document 對象使我們可以從腳本中對 HTML 頁面中的所有元素進行訪問。

     提示:Document 對象是 Window 對象的一部分,可通過 window.document 屬性對其進行訪問。

 

3.內置指令

   1、v-bind:響應並更新DOM特性;例如:v-bind:href  v-bind:class  v-bind:title  等等

          主要用法是綁定屬性,動態更新HTML元素上的屬性;

 

   2、v-on:用於監聽DOM事件; 例如:v-on:click  v-on:keyup

      2.1 @click 的表達式可以直接使用JavaScript 語句,也可以是一個在Vue 實例中methods 選項內的函數名,可以在方法中傳遞參數

    <a v-on:click="doSomething">...</a>

    <a @click="doSomething()">...</a>

     2.2方法與事件:

         Vue 提供了一個特殊變量$event ,用於訪問原生DOM 事件,可以阻止事件冒泡或者阻止鏈接打開

   

     2.3修飾符:

       在@綁定的事件后加小圓點“.”,再跟一個后綴來使用修飾符。

      

常用的一些修飾符有:

• .stop

• .prevent

• .capture

• .self

• .once

 

阻止單擊事件冒泡
  <a @click.stop=”handle "></a>
 
修飾符可以串聯
  <a @click.stop.prevent=” handle ” ></a>
 
一添加事件偵聽器時使用事件捕獲模式
  <div @click . capture=”handle ”> ... </div>
 
只當事件在該元素本身(而不是子元素) 觸發時觸發回調
  <div @click.self=” handle ”> ... </div>
 
一只觸發一次,組件同樣適用
<div @click.once=” handle ”> ... </div>

 
在表單元素上監昕鍵盤事件時,還可以使用按鍵修飾符,比如按下具體某個鍵時才調用方法:
 
 只有在keyCode 是13 時調用vm.submit()
   <input @keyup.13 =“ submit ”〉
 
3、v-model:數據雙向綁定;用於表單輸入等;例如:< input v-model= "message">,用來在input、select、text、checkbox、radio等表單控件元素上創建雙向數據綁定的。

4、v-show:條件渲染指令,為DOM設置css的style屬性

5、v-if:條件渲染指令,動態在DOM內添加或刪除DOM元素

6、v-else:條件渲染指令,必須跟v-if成對使用

7、v-else-if:判斷多層條件,必須跟v-if成對使用;

8、v-text:更新元素的textContent;例如:<span v-text="msg"></span> 等同於 < span>{{msg}} </ span>;

9、v-html:更新元素的innerHTML;會把標簽名也帶上。

10、v-for:循環指令

   10.1 v- for 的表達式遍歷數組時支持一個可選參數作為當前項的索引,

       例如:<li v-for="(book , index) in books ">{{ index}} - {{book.name })</li>

 

  10.2 v- for 的表達式遍歷對象屬性時,有兩個可選參數,分別是鍵名(key)和索引(index):

      <li v-for="(value , key , index) in user ">

    { { index } } - { { key } } : { { value } }
  </li>
 
10.3 v- for 的表達式還可以迭代整數:

       <span v-for="n in 10">{{n}}</span> 

10.4 數組更新

當我們修改數組時, Vue 會檢測到數據變化,所以用v-for 渲染的視圖也會立即更新。

• push()   
• pop()
• shift()
• unshit()
• splice()
• sort()
• reverse()

11、v-cloak:不需要表達式,這個指令保持在元素上直到關聯實例結束編譯; v-cloak 是一個解決初始化慢導致頁面閃動的最佳實踐 ;

12、v-once:也是一個不需要表達式的指令,作用是定義它的元素或組件只渲染一次,包括元素或組件的所有子節點。

        首次渲染后,不再隨數據的變化重新渲染,將被視為靜態內容; v-once 在業務中也很少使用,當你需要進一步優化性能時,可能會用到。

13、v-pre:不需要表達式,跳過這個元素以及子元素的編譯過程,以此來加快整個項目的編譯速度;

 

   

    14.label for  綁定對應的form標簽,

           <input type="radio" v-model="pick" id="r1" v-bind:value="a">
                  <label for="r1">r1</label>

           如果綁定了點擊這個標簽里面的內容光標會獲取焦點到ID為r1 的radio單選框,即點擊r1即可選中單選框

 

   15.el:element,需要獲取的對應元素,html中的容器,(id名)

       data:數據存儲,里面的值自己設置

       PS:用逗號分隔,不要用分號!!!!

      如果,在div外使用{{ name }},是不會出現字符串的,因為離開了div塊,el的容器

      每次新建一個js對象都是 new Vue(),不同的只是el對應綁定的模塊

 

  16.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM