vue之事件处理、双向绑定、表单控制、v-model进阶、购物车案例
目录
- 事件处理
- 过滤案例
- 事件修饰符
- 按键修饰符
- 数据双向绑定
- v-model的使用
- 表单控制
- v-model进阶
- v-model 之 lazy、number、trim
- 购物车案例
- 购物车案例 - 结算
- 购物车案例 - 全选/全不选
- 购物车案例 - 数量加减
事件处理
| 事件 | 释义 |
|---|---|
| input | 当输入框进行输入的时候 触发的事件 |
| change | 当元素的值发生改变时 触发的事件 |
| blur | 当输入框失去焦点的时候 触发的事件 |
change 和 blur 最本质的区别:
如果输入框为空,失去焦点后,change不会触发,但是blur会触发
过滤案例
过滤案例
- {{data}}
事件修饰符
| 事件修饰符 | 释义 |
|---|---|
| .stop | 只处理自己的事件,父控件冒泡的事件不处理(阻止事件冒泡) |
| .self | 只处理自己的事件,子控件冒泡的事件不处理 |
| .prevent | 阻止a链接的跳转 |
| .once | 事件只会触发一次(适用于抽奖页面) |
使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生
用 v-on:click.prevent.self 会阻止所有的点击
而 v-on:click.self.prevent 只会阻止对元素自身的点击
第二天
按键修饰符
就是按对应的按键松开时会触发事件。例如按enter键触发事件,按q键触发事件。
注意: 在事件触发时会自动把按键对象当作参数传入
第二天
数据双向绑定
v-model的使用
实现在input框输入内容实时传给v-model绑定的变量名的值,这样就能实时获取用户输入的内容
Title
您输入的内容是:{{myText}}
表单控制
| 属性 | 结果 |
|---|---|
| checkbox | 单选时是true或false,多选时是数组 |
| radio | 结果是对应的value值 |
第二天
username: ----->{{username}}
password: ----->{{password}}
记住密码: ----->{{remember}}
单选: 男
女
其他----->{{choice_one}}
多选: 篮球
足球
排球----->{{choice_many}}
v-model进阶
v-model 之 lazy、number、trim
lazy:等待input框的数据绑定时区焦点之后再变化
number:数字开头,只保留数字,后面的字母不保留;字母开头,都保留
trim:去除首位的空格
第二天
--->{{normal}}
--->{{lazy}}
--->{{number}}
--->{{trim}}
购物车案例
购物车案例 - 结算
购物车结算
商品名称
价格
数量
选择
{{item.name}}
{{item.price}}
{{item.number}}
已选商品:{{checkGroup}}
总价:{{getPrice()}}
购物车案例 - 全选/全不选
全选/全不选
商品名称
价格
数量
全选/全不选
{{item.name}}
{{item.price}}
{{item.number}}
已选商品:{{checkGroup}}
总价:{{getPrice()}}
购物车案例 - 数量加减
控制加减
商品名称
单价
数量
全选/全不选
{{item.name}}
{{item.price}}
{{item.number}}
总价:{{getPrice()}}