指令 (Directives) 是带有 v-
前缀的特殊特性。有大量指令还可以指定参数比如v-bind:title,这里的title就是参数
参数使用
绑定href
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../lib/bulma.css">
</head>
<body>
<div id="app" class="container">
<a v-bind:href="website">我的知识分享</a>
</div>
<script src="../lib/vue.js"></script>
<script>
var data = {
website:'https://www.yuque.com/qiudaozhang'
};
var vm = new Vue({
el:'#app',
data:data
})
</script>
</body>
</html>
点击后就跳转了。
绑定事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../lib/bulma.css">
</head>
<body>
<div id="app" class="container">
<button v-on:click="click">点我</button>
</div>
<script src="../lib/vue.js"></script>
<script>
var data = {
website:'https://www.yuque.com/qiudaozhang'
};
var vm = new Vue({
el:'#app',
data:data,
methods:{
click:function () {
alert('点击就送');
}
}
})
</script>
</body>
</html>
点击按钮就会触发相应的事件了。注意Vue并没有提供双击事件,按照作者的回复,你可以使用原生的dbclick来完成功能即可。
修饰符
修饰符 (modifier) 是以半角句号 .
指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。比如.prevent可以阻止事件冒泡。相当于event调用preventDefault()。
比如阻止表单直接提交。
观察下面的表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../lib/bulma.css">
</head>
<body>
<div id="app" class="container">
<form action="" >
<input type="submit" value="提交">
</form>
</div>
<script src="../lib/vue.js"></script>
<script>
var vm = new Vue({
el:'#app',
methods:{
hit:function () {
alert('弹弹乐');
}
}
})
</script>
</body>
</html>
当点击提交按钮,直接回进行提交。
现在修改如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../lib/bulma.css">
</head>
<body>
<div id="app" class="container">
<form action="" v-on:submit.prevent>
<input type="submit" value="提交">
</form>
</div>
<script src="../lib/vue.js"></script>
<script>
var vm = new Vue({
el:'#app',
methods:{
hit:function () {
alert('弹弹乐');
}
}
})
</script>
</body>
</html>
在form上添加了 v-on:submit.prevent
,可以发现点击提交,并不会再发起请求。
如果你希望不仅仅阻止了当前这个提交时间发生,还希望有额外的逻辑,则可以指定方法。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../lib/bulma.css">
</head>
<body>
<div id="app" class="container">
<form action="" v-on:submit.prevent="hit">
<input type="submit" value="提交">
</form>
</div>
<script src="../lib/vue.js"></script>
<script>
var vm = new Vue({
el:'#app',
methods:{
hit:function () {
alert('弹弹乐');
}
}
})
</script>
</body>
</html>