Vue.js应运而生
官网:
单向数据绑定
下载引用:
script标签内部引入
npm install vue
npm install vue@2.6.12
var vm = new Vue({
//选项对象
});
只能有一个DOM元素
也支持变量的方式
违反两个注意点就会报出模板编辑错误的提示
Vue.set()方法有三个参数,分别是数组,索引,新内容,用这个办法可以代替操作,以实时更新视图
指令的本质就是HTML自定义属性 Vue.js的指令就是以v-开头的自定义属性
<body>
<div id="app">
<p v-text="100">这是 p 标签的原始内容</p>
<p v-text="content">这是 p 标签的原始内容</p>
<p v-text="content2"></p>
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
content: '内容文本',
content2: '<span>span的内容</span>'
}
});
</script>
</body>
显示结果
与v-text的区别就在于可以替换为HTML文本,运行HTML代码
插件表达式和v-bind都不能插入语句
这一类就不行
注意不用冒号,而是等号了
错误写法
有两个类名,一个x一个a,但是a是固定的,cls会动态变化
例子
大括号内部才是动态表示区域
例子
index为数组下的索引值
index为对象下的索引值,key为数据的键值
运行结果
<body>
<div id="app">
<ul>
<li v-for="(item, index) in itemList" :key="item.id">
输入框{{ item.value }}: <input type="text">
</li>
</ul>
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
arr: [1, 2, 3],
itemList: [
{
id: 1,
value: 2
},
{
id: 2,
value:3
},
{
id:3,
value:3
}
]
}
})
</script>
</body>
template标签并不是真正的标签,生成的结构直接是内部的标签 template并不是一个真实的元素,所以没法设置key属性
<div id="app">
<template v-for="item in obj">
<span>{{ item }}</span>
<br>
</template>
</div>
结果
v-show内部的数据也可以通过data设置达到控制的效果 也可以通过条件表达式来控制
<p v-show="false">标签内容</p>
<p v-show="22 > 11">标签内容</p>
<body>
<div id="app">
<p v-if="bool">这是标签内容</p>
<p v-else-if="false">这是第二个p标签</p>
<p v-else-if="false">这是第三个p标签</p>
<p v-else>最后一个p标签</p>
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
bool: false
}
});
</script>
</body>
v-if 与 v-show的区别就在于show是创建了元素,if是符合条件才创建 v-if 和v-else-if这种组合只要有一个满足条件就会跳出,后面的不会再创建,跟JavaScript的if原理相同
<body>
<div id="app">
<div v-if="type==='username'" :key="'username'">
用户名输入框:<input type="text">
</div>
<div v-else :key="'email'">
邮箱输入框:<input type="text">
</div>
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
bool: true,
type: 'username'
}
});
</script>
</body>
<body>
<div id="app">
<ul v-if="true">
<li v-for="item in items">{{item}}</li>
</ul>
</div>
<script src="lib/vue.js"></script>
<script>
var vm = new Vue({
el: '#app',
data: {
items: {
content1: '内容1',
content2: '内容2',
content3: '内容3'
}
}
});
</script>
</body>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。