参数传递
参数传递有三种。
一是默认参数 @click="btnClick",默认传event。
二是明确参数 @click="btnClick("姗姗","18")",传确定的参数。
三是既要明确参数又要event参数 @click="btnClick("姗姗","18",$event)"
修饰符
template元素的使用
template:模板 没有任何含义,只是为了将内容包裹在一起。在template实现v-if/v-for等等指令。
v-for中的key属性
1,key属性主要用于Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes;
2,如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能地尝试就地修改/复用相同类型元素的算法;
3,而使用key时,它会基于key的变化重新排列元素顺序,并且会移除/销毁key不存在的元素。
认识VNode
VNode:Virtual Node 虚拟节点 VNode的本质是一个JavaScript的对象。
虚拟DOM
元素一层层嵌套,每一个元素都转换成一个VNode,那么整体就形成了一个VNode Tree。 虚拟DOM的好处:跨平台。
计算属性 vs methods
计算属性有缓存的。
计算属性会基于它们的依赖关系进行缓存。 在数据不发生变化时,计算属性是不需要重新计算的。
但是如果以来的数据发生变化,在使用时,计算属性会重新进行计算。
侦听器watch
开发中我们在data返回的对象中定义了数据,这个数据通过插值语法等方法绑定到template中。当数据变化时,template会自动进行更新来显示最新的数据。但是在某些情况下,我们希望在代码逻辑中监听某个数据的变化,这个时候就需要用侦听器watch来完成。
watch侦听培训选项
默认watch不进行深度监听。
不进行深度监听的意思就是,例如list是一个对象,当对象里面的某一个数据发生变化时,侦听器不会执行。
需要实现深度监听,如下图:
默认情况第一次不会监听,如果想要第一次也监听内容,配置
immediate: true