随笔分类 - vue3-放小结
这是vue3世界
摘要:Suspense 等待异步组件时渲染一些额外内容,让应用有更好的用户体验 使用步骤: 异步引入组件 import {defineAsyncComponent} from 'vue' const Child = defineAsyncComponent(()=>import('./components
阅读全文
摘要:Teleport 什么是Teleport?—— Teleport 是一种能够将我们的组件html结构移动到指定位置的技术。 <teleport to="移动位置"> <div v-if="isShow" class="mask"> <div class="dialog"> <h3>我是一个弹窗</h
阅读全文
摘要:customRef [ 实现防抖 ] 作用:创建一个自定义的 ref,并对其依赖项跟踪和更新触发进行显式控制。 案例 : <template> <div> <input type="text" v-model="num"> <br><br><br> {{num}} </div> </template
阅读全文
摘要:toRaw: 作用:将一个由reactive生成的响应式对象转为普通对象。[ ref的不行哦 ] 使用场景:用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。 markRaw: 作用:标记一个对象,使其永远不会再成为响应式对象。 应用场景: 有些值不应被设置为响应式的,例
阅读全文
摘要:readonly: 让一个响应式数据变为只读的(深只读)。 shallowReadonly:让一个响应式数据变为只读的(浅只读)。 应用场景: 不希望数据被修改时。 <template> <div> <h1>readonly : </h1> 姓名 : {{name}} <br> 薪资 : {{j.b
阅读全文
摘要:shallowReactive:只处理对象最外层属性的响应式(浅响应式)。 shallowRef:只处理基本数据类型的响应式, 不进行对象的响应式处理。 什么时候使用? 如果有一个对象数据,结构比较深, 但变化时只是外层属性变化 > shallowReactive。 如果有一个对象数据,后续功能不会
阅读全文
摘要:作用:创建一个 ref 对象,其value值指向另一个对象中的某个属性。 语法:const name = toRef(person,'name') 应用: 要将响应式对象中的某个属性单独提供给外部使用时。 扩展:toRefs 与toRef功能一致,但可以批量创建多个 ref 对象,语法:toRefs
阅读全文
摘要:什么是hook?—— 本质是一个函数,把setup函数中使用的Composition API进行了封装。 类似于vue2.x中的mixin。 自定义hook的优势: 复用代码, 让setup中的逻辑更清楚易懂。 正常的模式 : <template> <div> 得到鼠标坐标 x : {{pagex}
阅读全文
摘要:生命周期 Vue3.0中可以继续使用Vue2.x中的生命周期钩子,但有有两个被更名: beforeDestroy改名为 beforeUnmount destroyed改名为 unmounted Vue3.0也提供了 Composition API 形式的生命周期钩子,与Vue2.x中钩子对应关系如下
阅读全文
摘要:vue2和vue3响应式的原理(数据拦截) vue2.x的响应式 实现原理: 对象类型:通过Object.defineProperty()对属性的读取、修改进行拦截(数据劫持)。 数组类型:通过重写更新数组的一系列方法来实现拦截。(对数组的变更方法进行了包裹)。 Object.definePrope
阅读全文
摘要:setup执行的时机 在beforeCreate之前执行一次,this是undefined。 setup的参数 props:值为对象,包含:组件外部传递过来,且组件内部声明接收了的属性。 context:上下文对象 attrs: 值为对象,包含:组件外部传递过来,但没有在props配置中声明的属性,
阅读全文
摘要:watchEffect函数 watch的套路是:既要指明监视的属性,也要指明监视的回调。 watchEffect的套路是:不用指明监视哪个属性,监视的回调中用到哪个属性,那就监视哪个属性。 watchEffect有点像computed: 但computed注重的计算出来的值(回调函数的返回值),所以
阅读全文
摘要:监视属性watch 与Vue2.x中watch配置功能一致 两个小“坑”: 监视reactive定义的响应式数据时:oldValue无法正确获取、强制开启了深度监视(deep配置失效)。 监视reactive定义的响应式数据中某个属性时:deep配置有效。 <template> <div class
阅读全文
摘要:计算属性 与Vue2.x中computed配置功能一致 写法案例 : <template> <div class="about"> <h1>计算属性</h1> 姓 : <input type="text" v-model="firstName"> <br> 名 : <input type="text
阅读全文
摘要:reactive函数 作用: 定义一个对象类型的响应式数据(基本类型不要用它,要用ref函数) 语法:const 代理对象= reactive(源对象)接收一个对象(或数组),返回一个代理对象(Proxy的实例对象,简称proxy对象) reactive定义的响应式数据是“深层次的”。 内部基于 E
阅读全文
摘要:ref 作用: 定义一个响应式的数据 语法: const xxx = ref(initValue) 创建一个包含响应式数据的引用对象(reference对象,简称ref对象)。 JS中操作数据: xxx.value 模板中读取数据: 不需要.value,直接:<div>{{xxx}}</div> 备
阅读全文
摘要:setup 理解:Vue3.0中一个新的配置项,值为一个函数。 setup是所有Composition API(组合API)“ 表演的舞台 ”。 组件中所用到的:数据、方法等等,均要配置在setup中。 setup函数的两种返回值: 若返回一个对象,则对象中的属性、方法, 在模板中均可以直接使用。(
阅读全文