
vue3
龙易安
这个作者很懒,什么都没留下…
展开
-
vue3中shallowRef和ref的实现
1、对象中的get和set方法 var a={ value_:'123', get value(){ console.log('呵呵') return this.value_ }, set value(val){ console.log('哈哈',val) this.va原创 2021-12-28 09:09:04 · 1368 阅读 · 0 评论 -
vue3中reactive和shallowReactive的实现
实现数据劫持,不实现页面更新部分const reactiveHandler={ get(target,prop){ const result=Reflect.get(target,prop); return result; }, set(target,prop,value){ const result=Reflect.set(target,prop,value); console.log('===')原创 2021-12-24 16:26:21 · 407 阅读 · 0 评论 -
Vue3的toRaw和markRaw
1、toRawtoRaw返回由 reactive 或 readonly 方法转换成响应式代理的普通对象。这是一个还原方法,可用于临时读取,访问不会被代理/跟踪,写入时也不会触发界面更新。person是一个响应式对象,通过toRaw(person)得到的user,是一个普通对象,不再是一个响应式对象。更改user.age的值时,页面不会更新。只有更改person.age的值时,页面才会更新。 var person = reactive({ name: "long", age原创 2021-12-24 15:38:51 · 829 阅读 · 0 评论 -
Vue3的toRef
更改person.age的值时,通过ref(person.age)得到的age1不会改变,因为ref是复制,拷贝了一份新的数据值单独操作, 更新时相互不影响通过toRef(person,‘age’)得到的age2会改变,因为 toRef是引用。它为源响应式对象上的某个属性创建一个 ref对象, 二者内部操作的是同一个数据值, 更新时二者是同步的 setup() { let person =reactive( { name: "long",age:23 }); let age1 =原创 2021-12-24 15:09:15 · 2501 阅读 · 0 评论 -
Vue3的toRefs
把一个响应式对象转换成普通对象,该普通对象的每个 property 都是一个 ref因为reactive 对象取出的所有属性值都是非响应式的当更改person.age的值时,使用…person解构出来的属性值age没有相应的改变。 setup() { const person=reactive({ name:'long', age:23 }) const change1=()=>{ person.age++ }原创 2021-12-24 11:35:35 · 758 阅读 · 0 评论