v-bind
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="root">
<!-- v-bind 动态的绑定一个或多个特性 -->
<!-- 这里没有绑定 -->
<span title="title">1</span>
<!-- 动态的绑定 -->
<span v-bind:title="title">2</span>
<!-- v-bind简写为 : -->
<span :title="title">3</span>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
const app = new Vue({
el: '#root',
data() {
return {
title: '你好',
isModalShow: true
}
},
})
</script>
</body>
</html>
F12的Elements展现情况
v-bind的实际应用场景
当我们使用v-for
进行循环渲染数据时,每个元素都需要带有一个唯一的key值,这个时候就需要用到v-bind
了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="root">
<ul>
<li v-for="item in list" :key="item.id">{{ item.title }}</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
const app = new Vue({
el: '#root',
data() {
return {
list: [
{
id: 1,
title: '吃饭'
}, {
id: 2,
title: '睡觉'
}, {
id: 3,
title: '敲代码'
}
]
}
},
})
</script>
</body>
</html>
又或者你可能你需要某个元素上的某个属性带上javaScript
特性时,就可以用v-bind
实现。如果说没有使用v-bind
,那么带上的就是字符串。详情看上图效果。
事件指令v-on
绑定事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box{
width: 80px;
height: 80px;
background-color: aqua;
margin-top: 20px;
}
</style>
</head>
<body>
<div id="root" v-cloak>
<!-- v-on:事件名 用于绑定一个事件,这个事件里可以直接操作data里的数据 -->
<button v-on:click="isModalShow = !isModalShow">显示/隐藏</button>
<!-- v-on:事件名 可以缩写为 @事件名 -->
<button @click="isModalShow = !isModalShow">显示/隐藏</button>
<! -- 写成方法 -->
<button @click="toogleModalShow">显示/隐藏</button>
<div
v-if="isModalShow"
class="box"
/>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
const app = new Vue({
el: '#root',
// 这里说明下,参数一般都放在data里,data可以是一个对象
// 也可以是一个方法返回对象
// 无特殊情况下,都要采取第二种,方法返回对象,因为这样是为了避免修改原数据
data() {
return {
isModalShow: true
}
},
// 在Vue里,方法都需要放在methods里面
methods: {
toogleModalShow() {
this.isModalShow = !this.isModalShow
}
}
})
</script>
</body>
</html>