1. 程式人生 > >Vue入門和基礎——Vue的指令詳解

Vue入門和基礎——Vue的指令詳解

Vue入門和基礎(三)

vue中常用的指令詳解:
1.v-text:

<span v-text="message"></span>
<span>{{msg}}</span>

上述兩者等價。
2.v-html:

<div v-html="htmlText"></div>

因為插值表示式會將資料解釋為純文字,要輸出html可以使用v-html

3.v-pre:

<div id="app">
    <span v-pre>{{message}}</span>  //這條語句不進行編譯
</div>

v-pre主要用來跳過這個元素和它的子元素編譯過程。最終div裡什麼都不顯示;

4.v-cloak:

<div id="app" v-cloak>
    <div>
        {{message}}
    </div>
</div>
<script>
   var app = new Vue({
      el:'#app',
      data:{
        message:'app'
      }
    })
</script>

在頁面載入時,頁面會閃爍先會顯示

<div>
      {{message}}
</div>

然後會顯示

<div>
        app
</div>

5.v-once:
v-once關聯的例項,渲染一次後將會被視為靜態內容
6.v-if
7.v-else if
8.v-else

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>v-if</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]
/dist/vue.js"></script> </head> <body> <div id="app"> <h1 v-if="num === 1"> 1</h1> <h1 v-else if="num === 2">2</h1> <h1 v-else="num === 3">3</h1> </div> </body> <script> var app = new Vue({ el: '#app', data: { num:1, }, }) </script> </html>

改變num的值,div中的內容就會根據條件渲染;
9.v-show
也是根據條件展示元素,和v-if不同的是,如果判斷值為false,v-if直接將dom節點銷燬,而使用v-show元素會被保留在dom中;
10.v-for
根據遍歷陣列來進行渲染

<div v-for="(item,index) in items"></div>    //其中index為索引是可選項
<div v-for="item of items"></div>  

11.v-bind:
用來動態的繫結一個或者多個特性,也可以繫結一個含有鍵值對的物件
簡寫方法(:)

<div id="app2">
    <div :class="[{style1:showStyle1,style2:!showStyle1},useStyle]"></div>
    <br>
    <div :class="style"></div>
</div>


var app2 = new Vue({
    el:"#app2",
    data:{
        /*在data內部如果想給某一個變數進行賦值,是不能使用this關鍵字的*/
        showStyle1:true,
        useStyle:"style3",
        style:{
            style1:"",
            style2:"",
            style3:true,
        }
    },
    mounted:function () {
        this.style.style1 = this.showStyle1;
        this.style.style2 = !this.showStyle1;
    }
})

12:v-model:
雙向繫結:v-model會忽略所有表單元素的value、checked、selected特性的初始值。因為它選擇Vue例項資料做為具體的值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>v-if</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p>{{num}}</p>
    <input type="text" v-model="num">
</div>
</body>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            num:1,
        },

    })
</script>
</html>

v-model的修飾符:
.lazy:轉變為change事件同步
.number:轉化為數值型別
.trim:預設去掉收尾空格

13.v-on:
v-on用來監聽事件:簡寫為@
使用方法如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>v-on的使用方法</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <p>{{num}}</p>
    <button @click="add()">Add</button>
</div>
</body>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            num:1,
        },
        methods:{
          add:function () {
              this.num++;
          }
        },
    })
</script>
</html>

事件修飾符:
.stop 阻止事件繼續傳播
.prevent 事件不再過載頁面
.capture 使用事件捕獲模式,即元素自身觸發的事件先在此處處理,然後才交由內部元素進行處理
.self 只當在 event.target 是當前元素自身時觸發處理函式
.once 事件將只會觸發一次