Vue基础
Vue介绍
一 模板语法
1.插值语法
语法:
1 |
|

二 指令
1.文本指令
| 指令 | 释义 |
|---|---|
| v-html | 让HTML渲染成页面 |
| v-text | 标签内容显示js变量对应的值 |
| v-show | 放1个布尔值:为真 标签就显示;为假 标签就不显示 |
| v-if | 放1个布尔值:为真 标签就显示;为假 标签就不显示 |
v-show与 v-if的区别:
v-show:标签还在,只是不显示了(display: none)
v-if:直接操作DOM,删除/插入 标签
v-html:让HTML渲染成页面
1 |
|

v-text:标签内容显示js变量对应的值
1 |
|

v-show:显示/隐藏内容
1 |
|

v-if:显示/删除内容
1 |
|

2.事件指令
| 指令 | 释义 |
|---|---|
| v-on | 触发事件(不推荐) |
| @ | 触发事件(推荐) |
| @[event] | 触发event事件(可以是其他任意事件) |
v-on:click 可以缩写成@click
1 |
|

3.属性指令
| 指令 | 释义 |
|---|---|
| v-bind | 直接写js的变量或语法(不推荐) |
| : | 直接写js的变量或语法(推荐) |
v-bind:class=’js变量’可以缩写成::class=’js变量’
1 |
|

三 Style 和 Class
数据的绑定
语法
:属性名=js变量/js语法
- :class=’js变量、字符串、js数组’
class:三目运算符、数组、对象{red: true}
- :style=’js变量、字符串、js数组’
style:三目运算符、数组[{backgreound: ‘red’},]、对象{background: ‘red’}
1 |
|
下方试验的命令
1 | vm.class_obj.pop() |

四 条件渲染
| 指令 | 释义 |
|---|---|
| v-if | 相当于: if |
| v-else | 相当于:else |
| v-else-if | 相当于:else if |
1 |
|

五 列表渲染
1. v-if+v-for+v-else控制购物车商品的显示
1 |
|

2. v-for遍历数组(列表)、对象(字典)、数字
1 |
|

注意!在
Vue中:
- 数组的
index和value是反的- 对象的
key和value也是反的
3. key值 的解释
vue中使用的是虚拟DOM,会和原生的DOM进行比较,然后进行数据的更新,提高数据的刷新速度(虚拟DOM用了diff算法)
- 在
v-for循环数组、对象时,建议在控件/组件/标签写1个key属性,属性值唯一 - 页面更新之后,会加速DOM的替换(渲染)
:key="变量"
4. 数组更新与检测
可以检测到变动的数组操作:
push:最后位置添加
pop:最后位置删除
shift:第一个位置删除
unshift:第一个位置添加
splice:切片
sort:排序
reverse:反转
检测不到变动的数组操作:
filter():过滤
concat():追加另一个数组
slice():
map():原因:
作者重写了相关方法(只重写了一部分方法,但是还有另一部分没有重写)
解决方法:
1 | // 方法1:通过 索引值 更新数组(数据会更新,但是页面不会发生改变) |
六 事件处理
| 事件 | 释义 |
|---|---|
| input | 当输入框进行输入的时候 触发的事件 |
| change | 当元素的值发生改变时 触发的事件 |
| blur | 当输入框失去焦点的时候 触发的事件 |
change 和 blur 最本质的区别:
如果输入框为空,失去焦点后,change不会触发,但是blur会触发
1.过滤案例
1 |
|

2.事件修饰符
| 事件修饰符 | 释义 |
|---|---|
| .stop | 只处理自己的事件,父控件冒泡的事件不处理(阻止事件冒泡) |
| .self | 只处理自己的事件,子控件冒泡的事件不处理 |
| .prevent | 阻止a链接的跳转 |
| .once | 事件只会触发一次(适用于抽奖页面) |
使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生
用 v-on:click.prevent.self 会阻止所有的点击
而 v-on:click.self.prevent 只会阻止对元素自身的点击
1 |
|
事件冒泡

阻止事件冒泡

阻止链接跳转+只执行1次

3.按键修饰符
1 |
|

七 数据双向绑定
v-model的使用
1 |
|

八 表单控制
1.checkbox选中
1 |
|

2.单选
1 |
|

3.多选
1 |
|

4.购物车案例 - 结算
1 |
|

5.购物车案例 - 全选/全不选
1 |
|

6.购物车案例 - 数量加减
1 |
|

九 v-model进阶
v-model 之 lazy、number、trim
lazy:等待input框的数据绑定时区焦点之后再变化
number:数字开头,只保留数字,后面的字母不保留;字母开头,都保留
trim:去除首位的空格
1 |
|
