请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

不是很理解 teardown 的作用

teardown () {
    if (this.active) {
      // remove self from vm's watcher list
      // this is a somewhat expensive operation so we skip it
      // if the vm is being destroyed.
      if (!this.vm._isBeingDestroyed) {
        remove(this.vm._watchers, this)
      }
      let i = this.deps.length
      while (i--) {
        this.deps[i].removeSub(this)
      }
      this.active = false
    }
  }

$watch 将这个方法返回,可以详细说下这个 teardown 是什么作用么?

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2020-01-10 17:46:06

teardown 就是做清理操作,首先把自身从 vm._watcher 中移除,然后遍历它收集的依赖,删除对它的订阅,因为这个 watcher 已经被清理了,所以它的依赖发生变化,也不用再通知它更新了。

0 回复 有任何疑惑可以回复我~
  • 提问者 六一888 #1
    自定义 watcher 观测一个数据,为什么要删除对它的订阅啊,那下次这个数据发生更新怎么通知自定义 watcher 的 update 咧?
    回复 有任何疑惑可以回复我~ 2020-01-10 18:10:48
  • 当你不需要的时候,你才会调用这个方法
    回复 有任何疑惑可以回复我~ 2020-01-10 18:11:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信