1. 程式人生 > >Vue - 指令

Vue - 指令

isp 分享 prop else 示例 hello v-for 聲明 技術分享

v-text & v-html

瞬間一目了然

<div id="app">
    <p v-text="hello"></p>
    <p v-html="hello"></p>
</div>
<script>
new Vue({
    el: '#app',
    data: {
        hello: '<p>hello world ! ! </p>'
    }
})
</script>

技術分享圖片

v-bind

動態地綁定一個或多個特性,或一個組件 prop 到表達式。
示例:

<!-- 綁定一個屬性 -->
<img v-bind:src="imageSrc">

<!-- 縮寫 -->
<img :src="imageSrc">

<!-- 內聯字符串拼接 -->
<img :src="'/path/to/images/' + fileName">

<!-- class 綁定 -->
<div :class="{ red: isRed }"></div>
<div :class="[classA, classB]"></div>
<div :class="[classA, { classB: isB, classC: isC }]">

<!-- style 綁定 -->
<div :style="{ fontSize: size + 'px' }"></div>
<div :style="[styleObjectA, styleObjectB]"></div>

<!-- 綁定一個有屬性的對象 -->
<div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>

<!-- 通過 prop 修飾符綁定 DOM 屬性 -->
<div v-bind:text-content.prop="text"></div>

<!-- prop 綁定。“prop”必須在 my-component 中聲明。-->
<my-component :prop="someThing"></my-component>

<!-- 通過 $props 將父組件的 props 一起傳給子組件 -->
<child-component v-bind="$props"></child-component>

<!-- XLink -->
<svg><a :xlink:special="foo"></a></svg>


v-model

實現數據的創建和雙向綁定。

  • 點擊穿梭到另一個世界查看詳情


v-if v-show v-else v-else-if v-for

  • 點擊穿梭到另一個世界查看詳情

v-on

事件監聽器

  • 點擊穿梭到另一個世界查看詳情

v-once

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

<div id="app">
    <input type="text" v-model="hello">
    <div v-once>第一次綁定的值:{{hello}}</div>
</ul>
</div>
<script>
new Vue({
    el: '#app',
    data: {
        hello: 'hello world'
    }
})
</script>

技術分享圖片


v-pre

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

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

技術分享圖片


v-cloak

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

<style>
[v-cloak]{
    display: none;
}
</style>
<div id="app">
    <div v-cloak>{{hello}}</div>
    <div>{{hello}}</div>
</ul>
</div>
<script>
setTimeout(function(){
    new Vue({
        el: '#app',
        data: {
            hello: 'hello world'
        }
    })
},2000)
</script>

技術分享圖片


Vue - 指令