数据绑定
v-if和v-show区别
渲染方式:
v-if:根据条件动态渲染或移除元素,适用于条件不频繁变化的场景。
v-show:始终渲染元素,只是通过 CSS 控制显示或隐藏,适用于频繁切换显示状态的场景。
性能:
v-if 需要插入和删除元素,性能开销较大,适合渲染条件较少变化的情况。
v-show 只修改 CSS 样式,性能开销较小,适合在需要频繁切换显示状态时使用。
总结:
使用 v-if 时,元素会根据条件进行动态渲染,适合条件变化较少的情况。
使用 v-show 时,元素会始终存在于 DOM 中,仅通过样式控制是否显示,适合频繁切换的情况。
v-for
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
<ul>
<li v-for="i in lists">{{i}}</li>
</ul>
</div>
</body>
<script>
const vm = new Vue({
el: '#app',
data: {
lists: ['唱', '跳', 'rap', '篮球']
},
}
)
</script>
</html>
v-model:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
<div id="app">
<ul>
<li v-for="i in lists">{{ i }}</li>
</ul>
<hr>
账户<input type="text" v-model="username">
<p>用户名:{{ username }}</p> <!-- 显示输入框中绑定的值 -->
<button @click="login">登录</button><br>
<button @click="reset">重置</button>
</div>
</body>
<script>
const vm = new Vue({
el: '#app',
data: {
username: 'cs',
password: 'cs',
lists: ['唱', '跳', 'rap', '篮球']
},
methods: {
login() {
console.log(this.username)
},
reset(){
this.username = ''
}
},
});
</script>
</html>
用于创建双向数据绑定,它会将表单元素(如 、
v-bind:
用于动态绑定 HTML 元素的属性或特性。它允许你将 Vue 实例中的数据绑定到 DOM 元素的属性上。
常用于绑定 src、href、class、style 等属性。
指令的修饰符
button @click="login" @keyup.enter="login">登录
这一切,似未曾拥有