第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

【金秋打卡】第11天 Web前端架構(gòu)師2022版

標(biāo)簽:
Html5

课程章节: 第8周 前端基础技术回顾和巡礼

主讲老师:张轩

课程内容:

今天学习的内容包括:

3-4 深入响应式对象 - 追踪变化
3-5 深入响应式对象 - 存储和触发 effect

课程收获:

怎样完成响应式的任务

1 将执行修改的代码保存下来

2 然后我们要能够探测到值的改变

3 执行之前保存的修改的代码

	const person = {
  name: 'viking'
}

const handler = {
  get(target, prop, receiver) {
    console.log('trigger here')
    return target[prop]
  },
  set(target, prop, value, receiver) {
    console.log('set here')
    target[prop] = value
    // 设置成功以后要注意返回一个 布尔
    return true
   }
}
const proxy = new Proxy(person, handler)

6152bdb4000130a311520720.jpg
6152bd7f000124cd11520720.jpg

Vue3的响应式

通过Proxy(代理): 拦截对data任意属性的任意(13种)操作, 包括属性值的增删改查

通过 Reflect(反射): 动态对被代理对象的相应属性进行特定的操作

解释:

Reflect(反射)

是一个内置的对象,(用来做反射的)它提供拦截 JavaScript 操作的方法。这些方法与proxy handlers (en-US)的方法相同。

Reflect不是一个函数对象,因此它是不可构造的。简单说就是 Reflect 可以将目标对象 的属性操作直接返回

Reflect.get(target, propertyKey[, receiver]) 获取对象身上某个属性的值,类似于 target[name]。

Reflect.set(target, propertyKey, value[, receiver]) 将值分配给属性的函数。返回一个Boolean,如果更新成功,则返回true。

Proxy (代理)

const p = new Proxy(target, handler)

参数:target对象 ===>>> 要使用 Proxy 包装的  目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。

参数:handler对象 ===>>> 一个通常以函数作为属性的 对象,各属性中的函数分别定义了在执行各种操作时代理 p 的行为。

必须使用两者结合实现响应式

存储和触发 effect

  • 将所有 effect 加入特定的数据结构
  • 创建特定的函数可以再次运行这些 effect
  • 使用 Proxy 的 getter 和 setter,将这些函数放入对应的位置
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消