Vue学习笔记
ES6,事件监听,条件判断,循环遍历,双向绑定…
ES6
块级作用域
JS中使用var来声明一个变量时, 变量的作用域主要是和函数的定义有关。
针对于其他块定义来说是没有作用域的,比如if/for等,在ES5中我们只能借助function的作用域来解决外面变量的问题。
let的使用
var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, Brendan Eich决定修复这个问题, 于是他添加了一个新的关键字: let
我们可以将let看成更完美的var
1 | <button>按钮1</button> |
const的使用
在很多语言中已经存在, 比如C/C++中, 主要的作用是将某个变量修饰为常量;在JavaScript中也是如此, 使用const修饰的标识符为常量, 不可以再次赋值。
什么时候使用const呢?
当我们修饰的标识符不会被再次赋值时, 就可以使用const来保证数据的安全性.
建议: 在ES6开发中,优先使用const,只有需要改变某一个标识符的时候才使用let。(初始化必须赋值,赋值后不可改变对象)
1 | <script> |
对象增强写法
1 | <script> |
Vue事件监听
在前端开发中,我们需要经常和用户交互,这个时候,我们就必须监听用户发生的时间,比如点击、拖拽、键盘事件等等
在Vue中使用使用v-on指令来监听事件
v-on介绍:
作用:绑定事件监听器
缩写:形式如:v-on:click 缩写为 @click;
1 | <div id="app"> |
v-on参数
参数问题:
1 | <div id="app"> |
v-on修饰符

1 | <div id="app"> |
Vue条件判断
v-if
1 | <div id="app"> |
v-if,v-else-if,v-else
Vue的条件指令可以根据表达式的值在DOM中渲染或销毁元素或组件
1 | <div id="app"> |
用户登录切换
问题:如果我们在文本框有内容的情况下,切换类型,我们会发现切换的文本框依然显示之前输入的内容。
原因:这是因为Vue在进行DOM渲染时,出于性能考虑,会尽可能的复用已经存在的元素,而不是重新创建新的元素。
解决:如果我们不希望Vue出现类似重复利用的问题,可以给对应的input添加key,保证key的值不同。
1 | <div id="app"> |
v-show
需要在显示与隐藏之间切片很频繁时,使用v-show,当只有一次切换时,通过使用v-if。
1 | <div id="app"> |
Vue循环遍历
v-for遍历数组
1 | <div id="app"> |
v-for遍历对象
1 | <div id="app"> |
组件的key属性
官方推荐我们在使用v-for时,给对应的元素或组件添加上一个:key属性。
作用:提高Vue中虚拟DOM的复用效率,主要是为了高效的更新虚拟DOM。
1 | <div id="app"> |

检测数组更新
因为Vue是响应式的,所以当数据发生变化时,Vue会自动检测数据变化,视图会发生对应的更新。

1 | <div id="app"> |
Vue双向绑定
v-model绑定数据
Vue中使用v-model指令来实现表单元素和数据的双向绑定。
原理:v-model其实是一个语法糖,它的背后本质上是包含两个操作:
1.v-bind绑定一个value属性
2.v-on指令给当前元素绑定input事件
1 | <div id="app"> |
v-model绑定单选框
radio
1 | <div id="app"> |
v-model绑定多选框
单个勾选框:
v-model即为布尔值。
此时input的value并不影响v-model的值。
多个复选框:
当是多个复选框时,因为可以选中多个,所以对应的data中属性是一个数组。
当选中某一个时,就会将input的value添加到数组中。
1 | <div id="app"> |
v-model绑定下拉框
单选:只能选中一个值
v-model绑定的是一个值,当我们选中option中的一个时,会将它对应的value赋值到mySelect中。
多选:可以选中多个值
v-model绑定的是一个数组,当选中多个值时,就会将选中的option对应的value添加到数组mySelects中。
1 | <div id="app"> |
修饰符
lazy修饰符:
lazy修饰符可以让数据在失去焦点或者回车时才会更新。
number修饰符:
number修饰符可以让在输入框中输入的内容自动转成数字类型。
trim修饰符:
trim修饰符可以过滤内容左右两边的空格。
1 | <div id="app"> |
- 本文作者:
腾飞
- 本文链接:
https://www.tengfei.eu.org/article/94b8631a.html
- 版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!