指令与事件方法
指令系统
指令系统就是通过自定义属性实现的一套功能,也是声明式编程的体现。通常在标签上添加 v-* 字样,常见的指令有:
v-bind-> 操作标签属性,可通过:简写v-on-> 操作事件,可通过@简写
通过 methods 选项 API 实现添加事件方法,并且 Vue 框架已经帮事件传参机制处理好了
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="/vue.global.js"></script>
</head>
<body>
<div id="app">
<div title="{{ message }}">aaaaa</div>
<div v-bind:title="message" v-bind:class="myClass" v-on:click=" message = 'hi vue' ">aaaaa</div>
<div :title="message" v-bind:class="myClass" @click=" message = 'hi vue' ">aaaaa</div>
</div>
<script>
let vm = Vue.createApp({
data() {
return {
message: "hello world",
myClass: "box"
}
}
}).mount("#app")
</script>
</body>
</html>事件方法和传参处理
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="/vue.global.js"></script>
</head>
<body>
<div id="app">
<div :title="message" v-bind:class="myClass" @click="handleClick($event, 123)">aaaaa</div>
{{ message }}
</div>
<script>
let vm = Vue.createApp({
data() {
return {
message: "hello world",
myClass: "box"
}
},
methods: {
handleClick(event, num) {
this.message = "hi vue"
console.log(event) // 事件对象
console.log(num) // 123
}
}
}).mount("#app")
</script>
</body>
</html>