修改符、侦听器、生命周期

62 阅读3分钟

vue介绍

指令

v-cloak:这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。(使用此指令页面不会出现{{}})

修改符

事件 @click.prevent @submit.stop ...

表单 v-model.trim v-model.number v-model.lazy input -> change

键盘事件 @keyup

image.png

事件修饰符 image.png

image.png

计算属性computed

1️. 计算属性指的是通过一系列运算之后,最终得到一个属性值。 2. 这个动态计算出来的属性值可以被模板结构或 methods 方法使用。 3. 定义:在computed里面声明一些函数, 函数必须要有'return'值

特点

1️ 虽然计算属性在声明的时候被定义为方法,但是计算属性的本质是一个属性;

2️ 计算属性会缓存计算的结果,只有计算属性依赖的数据变化时,才会重新进行运算

使用

在页面中用模板插值方式使用计算属性: {{计算属性名}} 计算属性本质就是一个方法 但是使用的时候将这些方法的方法名当作属性使用, 计算属性的值就是return出来的值

执行

  1. 初始化显示执行
  2. 函数中用到了data中数据变化后会再次执行

getter和setter:

image.png

使用get和set函数 需要把计算属性函数改成计算属性对象 计算属性默认执行get方法(根据相关的数据计算并返回当前属性值) 当计算属性值自身改变后执行set方法

        return value
     },
     set(value){

     }
  }

}

侦听器 watch

定义

侦听Vue 实例上data中的数据和一些非DOM元素改变 可以获取数据改变前的值和改变后的值 形参(newval,oldval)=>(改变后的值,改变前的值)

immediate 选项

默认情况下,组件在初次加载完毕后不会调用 watch 侦听器。如果想让 watch 侦听器立即被调用,则需要使用 immediate 选项。

deep 选项

深度侦听 如果 watch 侦听的是一个对象,如果对象中的属性值发生了变化,则无法被监听到。此时需要使用 deep 选项。

监听对象单个属性的变化

如果只想监听对象中单个属性的变化,则可以按照如下的方式定义watch 侦听器:

面试问及

使用过侦听器吗 在vue中碰到过什么bug

侦听器用来检测数据的改变 当侦听的那个数据发生改变后就会触发侦听器中的对应函数 一般我更多的使用是用在侦听路由的变化->重新获取数据(如果搜索在以应用的outer-view中显示对应用的数据) 之前碰到一个坑点侦听器默认无法侦听复杂数据类型 侦听器默认情况下侦听的是数据内存地址后面用深度侦听deep:true 来解决这个问题,或者侦听精确到对象中的那个值也可

生命周期

定义

生命周期: vue实例从创建->运行->销毁 所经过的一系列过程统称为生命周期!强调的是一个时间段,生命周期函数:是由 vue 框架提供的内置函数,会伴随着生命周期,自动按次序执行,注: 生命周期强调的是时间段,生命周期函数强调的是时间点

分类

image.png

图示

image.png image.png