手机网站域做什么广告,浙江专业做网站,佛山建站模板搭建,中国建设工程监理协会网站目录 vue的响应式原理
路由跳转与拦截
vue2和vue3的生命周期
watch和computed的区别 vue的响应式原理
数据变更#xff0c;视图自动更新
使用Object.defineProperty()方法来监听属性的变化#xff0c;实现双向数据绑定。Object.defineProperty()方法可以控制对象的属性访…目录 vue的响应式原理
路由跳转与拦截
vue2和vue3的生命周期
watch和computed的区别 vue的响应式原理
数据变更视图自动更新
使用Object.defineProperty()方法来监听属性的变化实现双向数据绑定。Object.defineProperty()方法可以控制对象的属性访问权限实现响应式原理当定义一个响应式属性时Vue将使用Object.defineProperty()方法绑定该属性的getter和setter方法到一个观察者对象。当有任何对属性的更改时它将触发setter方法然后执行相应的更新操作。
当对数组进行操作如push、pop、shift、unshift、splice、sort、reverse等时Vue能够捕获到这些变化并触发视图的更新
对数组进行以下操作时Vue无法自动触发更新:
1.通过索引直接修改数组元素的值this.items[index] newValue
2.修改数组的长度this.items.length newLength
当我们修改对象的属性值时Vue能够捕获到这个变化并触发更新。这是因为Vue在对象上使用了Object.defineProperty来重写属性的访问器getter和setter从而能够追踪对象属性的变化。
如果要在响应式对象上添加新的属性,使用$set让新添加的属性也具有响应性
vue2.x的响应式 对象类型通过Object.defineProperty()对属性的读取、修改进行拦截数据劫持。 数组类型通过重写更新数组的一系列方法来实现拦截。对数组的变更方法进行了包裹。 存在问题 新增属性、删除属性, 界面不会更新。 直接通过下标修改数组, 界面不会自动更新。
Vue3.0的响应式 实现原理: 通过Proxy代理: 拦截对象中任意属性的变化, 包括属性值的读写、属性的添加、属性的删除等。 通过Reflect反射: 对源对象的属性进行操作。
路由跳转与拦截
拦截判断token是否存在
token的保存后端存后端接口让浏览器把token放cookie里前端调取token判断使用
vue2和vue3的生命周期
setup取代createdbeforecreated
beforeCreate - 使用 setup()created - 使用 setup()beforeMount - onBeforeMountmounted - onMountedbeforeUpdate - onBeforeUpdateupdated - onUpdatedbeforeDestroy - onBeforeUnmountdestroyed - onUnmounted
watch和computed的区别
监听数据的变化
watch不支持缓存支持异步监听函数有两个参数第一个参数是最新的值第二个参数是输入之前的值
computed计算属性会缓存数据结果只有依赖性数据改变才会重新计算在computed中的属性都有一个 get 和一个 set 方法当数据变化时调用 set 方法如果 computed 属性值是函数那么默认会走 get 方法必须要有一个返回值用return返回函数的返回值就是属性的属性值在 computed 属性对象中定义计算属性的方法和取data对象里的数据属性一样以属性访问的形式调用