(三)事件绑定的参数传递

68 阅读2分钟

参数传递

参数传递有三种。

一是默认参数 @click="btnClick",默认传event。

二是明确参数 @click="btnClick("姗姗","18")",传确定的参数。

三是既要明确参数又要event参数 @click="btnClick("姗姗","18",$event)"

image.png

修饰符

image.png

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的对象。

image.png

虚拟DOM

元素一层层嵌套,每一个元素都转换成一个VNode,那么整体就形成了一个VNode Tree。 虚拟DOM的好处:跨平台。

计算属性 vs methods

计算属性有缓存的。

计算属性会基于它们的依赖关系进行缓存。 在数据不发生变化时,计算属性是不需要重新计算的。

但是如果以来的数据发生变化,在使用时,计算属性会重新进行计算。

侦听器watch

开发中我们在data返回的对象中定义了数据,这个数据通过插值语法等方法绑定到template中。当数据变化时,template会自动进行更新来显示最新的数据。但是在某些情况下,我们希望在代码逻辑中监听某个数据的变化,这个时候就需要用侦听器watch来完成。

image.png

watch侦听培训选项

默认watch不进行深度监听。

不进行深度监听的意思就是,例如list是一个对象,当对象里面的某一个数据发生变化时,侦听器不会执行。

需要实现深度监听,如下图:

image.png

默认情况第一次不会监听,如果想要第一次也监听内容,配置

immediate: true