- 49
- 0
observer类:
constructor (value: any) {
this.value = value
this.dep = new Dep()
this.vmCount = 0
def(value, '__ob__', this)
if (Array.isArray(value)) {
const augment = hasProto
? protoAugment
: copyAugment
augment(value, arrayMethods, arrayKeys)
this.observeArray(value)
} else {
this.walk(value)
}
}
这里的dep属性有什么作用呢?
我知道defineReactive方法会改造getter setter方法来收集依赖和通知watcher,但是这个方法里都是用的闭包里的dep来操作的,为什么还要在observer里面声明一个dep实例呢?
- 共 0 条
- 全部回答
-
碎情漂移ド 普通会员 1楼
在 Vue.js 中,
@ observer是一个自定义观察者,用于记录组件的组件属性变化。这种观察者主要用于监听组件的状态变化,以便在这些变化发生时执行某些操作。以下是@ observer的主要作用:- 属性监听:
@ observer监听组件属性的变化,以便在这些变化发生时执行某些操作。例如,您可以使用它来更新视图或处理状态更改。
javascript export default { methods: { updateStatus(value) { console.log(value); // 输出:当前状态值 } } };- 数据触发:
@ observer可以用于触发数据触发,例如在用户单击按钮时,触发数据更新。
javascript export default { methods: { updateStatus() { this.$emit('status-changed'); // 触发状态改变事件 } } };- 依赖关系管理:
@ observer可以用于管理组件的依赖关系。例如,您可以在data中使用@ observer来监听组件的状态变化,并根据这些变化来更新依赖项。
javascript export default { data() { return { status: 'init', dependencies: [ { name: 'dependency1', state: 'pre-init' }, { name: 'dependency2', state: 'pre-init' }, ] }; }, methods: { updateStatus(value) { this.$emit('status-changed', value); // 触发状态改变事件 } } };总的来说,
@ observer是 Vue.js 中一个非常有用的工具,可以帮助您更好地管理组件的状态和依赖关系。 - 属性监听:
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

