绑定属性
v-bind
将data中的数据作为某个元素的属性的值
使用 v-bind:属性名称 指令,属性可以是内置,也可以是自定义的
v-bind:id=“id”获取data中给他设定的id值
<p v-bind:id="id">{{title}}</p>
let app = new Vue({
// 4、当前 vue 实例的挂载点是 id 为 app 的dom,其实设置的就是vue实例中变量的可用范围
el: '#app',
data: {
id: 11,
},
})
//双向的数据绑定:从控制台中改,浏览器中也变,
//单项的数据绑定:页面修改,控制台输出不变
单选按钮
通过 v-model 来代替原来的name属性
<div id="app">
<label for="man">男</label>
<input type="radio" id="man" value="man" v-model="gender" />
<label for="women">女</label>
<input type="radio" id="women" value="women" v-model="gender" />
</div>
let app = new Vue({
el: '#app',
data: {
gender: '',
},
})
模板使用js
<div id="app">
<p>{{age + 1}}</p>
<p>{{message.split('').reverse().join('')}}</p>
</div>
// split变数组 reverse反过来 join拼接
let app = new Vue({
el: '#app',
data: {
age: 10,
message: '12345',
},
})
列表的渲染
循环 v-for
条件渲染
可以单独使用 v-if,或者 v-if 和 v-else,或者 v-if 和 v-else-if 搭配使用
v-if在单独使用的时候,与 v-show 的作用是一样的,都是根据变量的值决定是显示还是隐藏当前元素
<!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>
</head>
<body>
<div id="app">
<h1 v-if="isMary">已婚</h1>
<h1 v-else>未婚</h1>
<div v-if="type">v-if</div>
<div v-show="type">v-show</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
let app = new Vue({
el: '#app',
data: {
isMary: false,
type: true
},
})
</script>
</body>
</html>
一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好