Vue 指令

指令

指令是带有 v- 前缀的特殊属性,当指令的值改变时它会将连带的影响更新到 DOM 。 以 v-if 为例子,他控制着元素的可见性。

<div id="app">
    <p v-if="visible">{{message}}</p>
</div>
const vm = new Vue({
    el: "#app",
    data: {
        message: "abc",
        visible: true,
    }
});

sqlpy

默认情况下 app 这个元素是可见的,当我们把 v-if 的值 visibletrue 改成 false 之后整个元素就不可见了。

vue-direction

更新 v-if 的值为 false 之后,元素就不可见了。

vue-direction


指令参数

之前我们使用指令的方式是 <指令名>=<指令值> ,对于指令来说还有一个重要的部分它就是指令参数。<指令名>:[指令参数]=<指令值> ,例如我们想设置 a 标签的 href 属性 可以这样做。

<div id="app">
    <a v-bind:href="web_site">go to baidu</a>
</div>
const vm = new Vue({
    el: "#app",
    data: {
        web_site: "https://www.baidu.com"
    }
});

vue-direction


修饰符

修饰符用 "." 号表示,指明特殊后缀,用于指明指令应该以特殊方式绑定,如 prevent 可用用于阻止元素的默认行为。

<div id="app">
    <a v-bind:href="web_site" v-on:click.prevent="showalert">go to baidu</a>
</div>

不要再跳转,取而代之的是给出一个提示。

const vm = new Vue({
    el: "#app",
    data: {
        web_site: "https://www.baidu.com"
    },
    methods: {
        showalert:function() {
            alert("不要跳到 baidu 去了。");
        }
    }
});

现在点击页面上的超链接不再会跳转,而是会弹出一个提示。 vue-direction


缩写

对于非常常用的 v-bindv-on 指令,Vue 为他们提供了缩写

原始指令 缩写指令
v-bind[参数]=[值] :[参数]=[值]
v-on[参数]=[值] @[参数]=[值]