You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 9, 2021. It is now read-only.
// 示例 1consttarget={keys: {name: 'I am a original object.'}}consthandle={get(target,key){returnkeyintarget.keys? target.keys[key] : console.error(`There is no '${key}' in `,target.keys)}}// 通过 Proxy 实例来读取被代理的对象的键值constproxy=newProxy(target,handle)proxy.name// 'I am a original object.'// 示例 2consttarget={keys: {name: 'I am a original object'},// getter 函数必须在 target 的对象内设置,而非在 receiver 设置getname(){returnthis.keys.name}}/** * 1. receiver 仅起到提供 键值 的作用,不在其中设置 getter 或 setter。当遇到 * target 内有 getter 函数时,将 receiver 提供给 target 中的 getter 函数 */constreceiver={keys: {name: 'I am a super object'}}Reflect.get(target,'name',receiver)// "I am a super object"// 示例 3consttarget={keys: {name: 'I am a original object'},// getter 函数必须在 target 的对象内设置,而非在 receiver 设置getname(){returnthis.name}}// receiver 仅起到提供 键值 的作用,不在其中设置 getter 或 setterconstreceiver={name: 'I am a super object'}consthandle={// 此处若传入第三个参数,那么第三个参数将表示当前的 proxy 实例get(target,key){returnReflect.get(target,key,receiver)// 相当于 target.keys[key] 作用}}constproxy=newProxy(target,handle)proxy.name// 'I am a super object'
The text was updated successfully, but these errors were encountered:
MVVM
框架的个人见解👉 MVVM架构模式
响应式原理以及数据双向绑定
👉 Repo: vue-reactive
Model
经由ViewModel
(Vue.js
) 绑定View
;监听View
变化以通过ViewModel
更新Model
。数据代理实现
this.$data[key] === this[key]
成立。Vue.js
现阶段使用Object.defineProperty
(Reflect.defineProperty
将逐步取代之) 实现数据代理。同时,ES2015 中新增的
Proxy
方法同样可以实现数据代理,在 Vue.js 3 中 Proxy 可能代替Object.defineProperty
The text was updated successfully, but these errors were encountered: