Vue3-toRef 和 toRefs 函数 - 功能:可以简化语法调用。- toRef - 函数执行时会生成一个对象 ObjectRefImpl ,是一个引用对象,具有value属性(getter 和 setter 属性)
Vue3-toRaw 和 markRaw 函数 - toRaw(转换为原始):将响应式对象转换为普通对象,只适用于 reactive 生成的响应式对象。- markRaw(标记为原始):标记某个对象,让这个对象永远都不具备响应式。一些集成的第三方库,会有大量的只读列表,不让其具备响应式是一种性能优化。
Vue3-readonly(深只读) 与 shallowReadonly(浅只读) - readonly(深只读):具有响应式对象中所有的属性,其所有值都是只读且不可修改的。- shallowReadonly(浅只读):具有响应式对象的第一层属性值是只读且不可修改的,其他属性值不设为只读。
Vue3-watchEffect函数 功能:watchEffect 函数在一开始时就会执行一次,而当中的回调函数的属性发生变化,那么watchEffect 就会再执行一次,主要作用还是在于监视回调函数每次的变化。
Vue2&3全局事件总线 - 功能:可以解决所有组件之间通信传数据的问题- 原理:通过一个共享对象,将所有组件全部绑定到对象上,即可通过这个对象实现组件与组件之间的传递数据,而这个共享对象叫做全局事件总线。
Vue3-ref函数、reactive函数的响应式 ref函数通过对数据进行一个包装,然后返回一个全新的对象,叫做引用对象RefImpl在这个RefImpl对象中有一个value属性,而value属性底层调用了`Object.defineProperty`响应式
局部路由守卫component守卫 beforeRouteEnter、beforeRouteLeave都有三个参数: - to参数:to是一个路由对象,表示到哪儿去(跳转的下一个路由组件)。 - from参数:form是一个路由对象,表示从哪来(从哪个路由切换过来的)。 - next参数:next是一个函数,表示允许通过,可以继续向下走。
全局前置路由守卫(beforeEach) 功能:每一次切换任意路由组件之前都会被调用,相当于在进入另一个路由组件之前设置一个权限。 - 路由守卫的存在意义就是在不同的时间,不同的位置,去添加代码。 - 如:Java的filter(过滤器):在使用哪段代码前先进行过滤(效果类似)