当前位置: 首页 > Web前端 > vue.js

Vue3-API学习笔记

时间:2023-03-31 22:39:46 vue.js

结合APISetUpgraphLRA[setup]-->B[parameter]B-->|Props|D[Props是响应式的,所以不能解构]B-->|context|E[context是一个普通的JS对象,包括组件的三个属性:attrs、slots、emit]注意如果data和methods中定义的数据和方法也存在于setup中,那么setup的优先级就高。setup中声明的方法需要返回出去。执行设置时,尚未创建组件实例。这个时候在setup:propsattrsslotsemitdatacomputedmethods里面可以访问到这个是访问不到的。]-->B[reactive]A-->D[readonly]A-->E[isProxy]A-->F[isReactive]A-->G[isReadonly]A-->H[toRaw]A-->J[markRaw]A-->K[shallowReactive]A-->L[shallowReadonly]styleAfill:#2ff,fill-opacity:0.1,stroke:#faa,stroke-width:4pxreactive一般定义对象(参考数据类型)用于反应性数据。参考图TBA[Refs]-->B[ref]A-->C[unref]A-->D[isRef]A-->E[toref]A-->F[toRefs]A-->G[isRef]A-->H[customRef]A-->J[shallowRef]A-->K[triggerRef]styleAfill:#2ff,fill-opacity:0.1,stroke:#faa,stroke-width:4pxrefgeneral用于定义(数字,字符串)响应式数据,也可以用于定义响应式对象(object/Array)。如果你使用ref来定义一个对象,这个对象会自动转换为ref内部的一个反应对象。unref引用自官网:如果参数是ref,则返回内部值,否则返回参数本身。这是val=isRef(val)*的语法糖函数?值:值。isRef检查值是否为ref对象,返回布尔值。toRef用于创建源响应对象的某个属性作为新的ref,然后新的ref会与原属性保持引用关系,新的ref可以独立操作,达到修改指定属性的目的的源对象。toRefs将源对象中的属性包装成ref对象,并返回这些ref对象的普通对象。reactive定义的对象被toRefs包裹后,对象的每个属性都会响应。示例:

{{name}}

{{age}}

-----------------------------------------------------------------setup(){constobj=reactive({name:'ZhangSan',age:11})//在不损失响应性的情况下分解/扩散返回的对象:setTimeout(()=>{obj.name='Zhang吴'obj.age=15},2000);return{...toRefs(obj)//模板中使用的obj中的属性(变量)是响应式的}}