Vue指令的學習

前言:

Vue官網一共有提供瞭14個指令,分別如下:

  • v-text
  • v-html
  • v-show
  • v-if ☆☆☆
  • v-else ☆☆☆
  • v-else-if ☆☆☆
  • v-for ☆☆☆
  • v-on ☆☆☆
  • v-bind ☆☆☆
  • v-model ☆☆☆
  • v-slot
  • v-pre
  • v-cloak
  • v-once

註意:☆代表重要常用的

一、v-text(v-指令名=”變量”,變量需要data提供數值)

<p v-text="info"></p>
<p v-text="'abc' + info"></p>
<script>
    new Vue({
        el: '#app',
        data: {
            info: 'a'
        }
    })
</script>


v-text="info"渲染頁面結果為a,因為info是個變量,就直接展示變量所對應的值

v-text="'abc' + info"渲染頁面結果為abca,當你想用字符串和變量拼接時,可以在字符串上增加單引號,這樣程序就認為你這個是個字符串,字符串+info變量最後的結果就是字符串abca

二、v-html(可以解析html語法)

有時候我們的Vue對象中,或者是後臺返回給我們一個段原生的html代碼,我們需要渲染出來,那麼如果直接通過{{}}渲染,會把這個html代碼當做字符串。這時候我們就可以通過v-html指令來實現。

示例代碼如下:

<p v-html="'<b>ok</b>'"></p>
<p v-text="'<b>ok</b>'"></p>


以上兩行代碼除瞭用的vue指令不一樣以外,沒有任何區別,讓我們先展示結果吧

ok
<b>ok</b>


v-html可以解析html的標簽,而text傳的是字符串,不用管字符串裡面具體的內容是什麼,統一都直接展示出原來的字符

三、v-once(隻渲染元素和組件一次)

隻渲染元素和組件一次。隨後的重新渲染,元素/組件及其所有的子節點將被視為靜態內容並跳過。這可以用於優化更新性能。

<input type="text" v-model="msg" v-once>  // 隻渲染一次
<p v-once>{{ msg }}</p>  
 

四、v-cloak(防止頁面閃爍)

這個指令保持在元素上直到關聯實例結束編譯。和 CSS 規則如 [v-cloak] { display: none } 一起用時,這個指令可以隱藏未編譯的Mustache標簽直到實例準備完畢。

五、v-pre(瞭解)

跳過這個元素和它的子元素的編譯過程。可以用來顯示原始 Mustache 標簽。跳過大量沒有指令的節點會加快編譯。

<div id="app">
  <span v-pre>{{message}}</span>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      message: "hello"
    }
  })
</script>

正常來講我們會通過編譯最後在網頁上顯示hello,但是使用瞭v-pre指令後,就會跳過編譯,直接展示原始的標簽內容也就是{{message}}

六、v-bind

6.1 綁定屬性

如果我們想要在html元素的屬性上綁定我們Vue對象中的變量,那麼需要通過v-bind來實現。

<div id="app">
  <a v-bind:href="baidu" rel="external nofollow" >百度</a>
  <img :src="imgSrc" alt="">
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      message: "hello",
      baidu: "https://www.baidu.com",
      imgSrc: "https://www.baidu.com/img/pc_a91909218349e60ed8f6f6f226c30e5f.gif"
    }
  })
</script>

我們隻需要在綁定的屬性前面添加v-bind:即可,當然我們也可以使用縮寫:,直接寫冒號即可

6.2 綁定Class

綁定Class有2種方式,一種通過數組綁定,一種通過對象綁定

通過對象的方式來實現:

<div id="app">
  <p v-bind:class="{color:isColor}">你好,世界</p>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      isColor: true
    }
  })
</script>
<style>
    .color{
        color: blue;
    }
</style>


對象的方式即像上面的代碼{color:isColor} keycolorvalueisColor,當value的值為true則渲染,為false則不渲染

通過數組的方式來實現:

<div id="app">
  <p :class="[classname1, classname2]">{{message}}</p>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      message: "hello",
      classname1: "pcolor",
      classname2: "fontSize"
    },
  })
</script>
<style>
    .pcolor{
        color: red;
    }
    .fontSize{
        font-size: 30px;
    }
</style>


class需要綁定2個屬性時,可以使用數組的方式

6.3 綁定Style

綁定Style也有2種方式,一種通過數組綁定,一種通過對象綁定

通過對象的方式來實現:

<div id="app">
  <p :style="{fontSize:'100px'}">{{message}}</p>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      message: "hello"
    }
  })
</script>


註意:對象綁定的時候隻能駝峰命名法fontSize,不能使用font-size否則會報錯,100px加單引號就是字符串,不加則是變量,需要在data中添加變量

通過數組的方式來實現:

<div id="app">
  <p :style="[style1, style2]">{{message}}</p>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      message: "hello",
      style1: {background:'red'},
      style2: {fontSize:'30px'},
    }
  })
</script>

到此這篇關於Vue指令的學習的文章就介紹到這瞭,更多相關Vue指令內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: