请稍等 ...
×

采纳答案成功!

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

视图上没有用到的数据更新了,vue会去更新视图吗?

老师,请问一下,如果我在data里定义了noUsed,页面上没有绑定这个noUsed,然后我在某个方法里更新了noUsed,这时vue会更新视图吗?
或者说vue是如何判断的,是进行diff吗?

正在回答

1回答

不会更新视图的,因为你没用到这个 noUsed,就不会触发它的 getter,就不会进行依赖收集。

2 回复 有任何疑惑可以回复我~
  • 提问者 沈剑心23333 #1
    谢谢老师!
    回复 有任何疑惑可以回复我~ 2019-07-28 10:27:21
  • Mrliufy #2
    老师,不一定不会更新吧,例如下面的b,页面上没有绑定,但是当c大于3时,b的dep会订阅computed watcher和render watcher,从而下次数据变化会更新视图:
    new Vue({
      el: '#app',
      template: '<div @click="cPlus">Click Me{{message}}</div>',
      data(){
        return {
          a: 1,
          b: 2,
          c: 3
        }
      },
      methods:{
        cPlus(){
          this.c += 1
        }
      },
      computed:{
        message(){
          if(this.c > 3){
            return this.a + this.b
          }
          return this.a
        }
      }
    })
    回复 有任何疑惑可以回复我~ 2019-09-17 22:49:10
  • ustbhuangyi 回复 Mrliufy #3
    b 是计算属性 message 的依赖,而计算属性又在模板中使用了,它的变更会引起视图的重新渲染。而这位同学的提问不是这个含义
    回复 有任何疑惑可以回复我~ 2019-09-18 00:00:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信