methods中的方法为什么会跟随data实例值变化而执行?

大群
  • 65

我在data里面定义了一个值,然后用input做上双向绑定
image.png

image.png

然后这时候在methods里面定义一个函数,然后将函数值也放到节点中
image.png

image.png

这个时候改变input输入框中的值,message2函数就会不断的被触发,这种不是只有计算属性才能做到吗,为什么普通函数也会改变呀?

回复
阅读 583
2 个回答
✓ 已被采纳

template编译成render大概是这样:

render(h) {
    return h('div', [
      h('input', {attrs: {type: 'text'}, props: {value: this.msg}, on: {input: v => this.msg = v}}),
      h('span', this.message2())
    ])
  }

每次视图更新就会调用render,message2自然也会被调用

模板渲染时,调用到了方法 message2,方法内部使用到了 this.msg 触发了 msg 的 get 方法,会进行依赖收集,当 msg 变化时自然就会通知视图渲染,重新执行方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏