指令
指令(Directive)是带有v-前缀的特殊特性。指令特性的预期值是单个javascript的表达式。
当表达式的值发生改变是,将其产生的连带影响。响应式作用于DOM。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script src="vue.js"></script>
</head>
<body>
<div id='app'>
<p v-if="seen">你可以看见我吗?</p>
</div>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data: {
seen:true,//能够被看见
seen:false,//不能够被看见
}
})
</script>
</body>
</html>
#参数
一些指令能够接收一个“参数”,在指令名称之后用冒号(:)表示,例如v-bind指令可以响应式的更新HTML特性:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script src="vue.js"></script>
</head>
<body>
<div id='app'>
<a v-bind:href="url" >click me!</a>
</div>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data: {
url:"https://cn.vuejs.org/v2/guide/syntax.html",
}
})
vm.url = "https://www.csdn.net/";//未添加该行将进入vue.js官网;添加后地址属性值跟新,跳转到CSDN首页。
</script>
</body>
</html>
#修饰符
修饰符(modifier)以半角句号.指明的特殊后缀,用于指出一个指令应该以特殊的方式绑定。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script src="vue.js"></script>
</head>
<body>
<div id='app'>
<div @click="click1">
<!-- 用@click绑定点击事件,用代码中的methods属性初始化定义 -->
<div @click="click2">
click me!
</div>
</div>
</div>
<script type="text/javascript">
var vm = new Vue({
el:'#app',
data: {
},
methods:{
click1: function(){
console.log('click1');
},
click2: function(){
console.log('click2');
}
},
})
</script>
</body>
</html>
在控制台中我们可以看到,点击click2事件是会触发click1事件
但在开发时,我们常不希望触发click1事件,故可对其添加修饰符,即在@click后添加.stop的修饰符;
<div @click="click1">
<!-- 用@click绑定点击事件,用代码中的methods属性初始化定义 -->
<div @click.stop="click2">
click me!
</div>
</div>
可以在控制台观测到结果,触发click2事件后不再触发click1事件。