Vue简介
1.JavaScript框架
2.简化Dom操作
3.响应式数据驱动
Vue基础
通过下面代码引用vue:
示例:
<!-- 引用vue -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script type="text/javascript">
var app = new Vue({
el:"#app",
data:{
message:"Hello Vue!"
}
})
</script>
编写一个简单Vue程序步骤:
el:挂载点
用于选中需要被vue渲染的部分,如: el:"#box",样只会选中id为box中的内容进行渲染," # "表示id选择器,el也可以选中其它css选择器,如: el:".red" 等等..
data: 状态|数据
可以在data里面定义一些数据变量(数组,对象,…)
插值:
{{ 10+20 }} 将数据渲染到页面元素中,不解析html标签
v-html 将数据渲染到页面元素中,可以解析html标签
vue指令
v-show
值为bool类型,为true表示显示元素,false表示隐藏元素(display:none)
v-if
值为bool类型,为true表示创建元素,false表示删除元素
v-bind
绑定属性,如
,通过v-bind就可以将div的类样式设置为red, 。动态绑定class:
三目写法:
如果前面条件为true就应用red样式,false则应用yellow样式。对象写法:
html的内容
data:{ js内容,data数据
classobj:{
red:true,
yellow: false,
aaa:true
}
}
上面div将会同时应用red和aaa两个类样式,如果想不应用red样式,可以将classobj.red的值设置为false,该样式将不被应用。
数组写法:
html的内容,缩写的方式
data:{ js内容,data数据
classarr:["red", "a", "b" ] //数组中存放类样式名
}
在数组中存在的样式都将被应用,通过数组的 pop()方法删除数组元素(删除样式),push()方法添加数组元素(添加样式)
v-bind可以简写为" : "号,如 ,用 : 号代替b-bind
绑定style属性:
三目写法:
这里注意,如果样式是background-color的话要写成backgroundColor才行,所有样式中 - 的都要这样写
对象写法:
html的内容
data:{ js内容,data数据
styleobj :{
background: "red",
fontSize: "30px", //对象属性就是需要应用的样式
}
}
数组写法:
html的内容,缩写的方式
data:{ js内容,data数据
stylearr:[] //数组
}
添加样式 stylearr.push({ backgroundColor:"red" }) 通过这种形式添加样式,删除样式还是通过操作数组就行
条件渲染:
v-if 和 v-else 的使用,当v-if中的条件为假的时候显示v-else里面的内容
这个有什么用呢?比如:有些购物软件,当你购物车没有添加商品是会显示 购物车空空如也,添加商品后再展示商品。这种就可以用v-if和v-else来实现
代码:
html内容:
<div id="box">
<div v-if="goods.length">
<h2>商品列表</h2>
<ul>
<li v-for="item in goods">{{ item }}</li>
</ul>
<button type="button" v-on:click="goods.pop()">删除一个商品</button>
</div>
<h2 v-else>商品空空如也!</h2>
</div>
js内容:
<script type="text/javascript">
var vm = new Vue({
el:"#box",
data:{
goods:\["苹果", "鼠标"\]
}
})
</script>
数组中有元素时显示v-if的内容,单击删除按钮会从数组中删除一个元素,当数组中元素被删除时将显示v-else的内容
v-else-if 有v-if、v-else那肯定少不了v-else-if
v-else-if使用方式跟v-else使用差不多,如果v-if为false继续判断v-else-if
代码演示:
<script type="text/javascript">
var vm = new Vue({
el:"#box",
data:{
num:2
}
})
</script>
只有条件 num===2 是为true的 所以页面显示的将是 2 ,还是挺好理解的
v-for
语法:
in 可以改成 of 也是可以使用的
index表示数组的索引
遍历数组或对象中的元素进行展示,一般配合列表使用
代码:
<h2>遍历对象内容进行展示</h2>
<ul>
<li v-for="each in dataobj">{{ each }}</li>
</ul>
</div>
<script type="text/javascript">
var vm = new Vue({
el:"#box",
data:{
datalist:\["111", "222", "333"\],
dataobj:{
name:"kk",
age:18,
sex:"男"
}
}
})
</script>
结果:
可以看到列表的数量是取决于数组或对象中的元素数量。
key 在使用v-for的时候可以设置key属性,一般key的值为data.id
跟踪每个节点的身份,从而重用和重新排序现有元素
理想的key值是每项都有的且唯一的id。data.id
数组更新检测
使用一下方法操作数组,可以检测变动
push()、pop()、shift()、unshift()、splice()、sort()、reverse()
filter()、concat()、slice()、map() ,新数组替换旧数组
filter()方法使用:
语法:
新数组 = 旧数组.filter(变量名=>条件)
条件为true才包含在新数组中,如: b = a.filter(item => item>1 ),是有数组a中元素大于1的才会被存放到数组b中
事件处理:
监听事件-直接触发代码
方法事件处理器-写函数
内联处理器方法-执行函数表达式 handleClick($event) $event 事件对象
事件修饰符
按键修饰符
表单绑定
v-model 双向数据绑定
绑定text文本框:
绑定checkbox多选框:
checkgroup 是数组类型,并且input标签必须设置value值,多个选择框绑定同一个数组
绑定 radio 单选框:
picked为字符串类型,选中某一个单选框后会将它value的值给picked,多个选择框绑定同一个变量
v-model修饰符:
v-model.lazy 失去焦点后同步
v-model.number 只同步数字部分
v-model.trim 同步时去除前后空格
手机扫一扫
移动阅读更方便
你可能感兴趣的文章