vue本身会对data中的数据监听,单纯展示而不需要响应的数据如何优化?

大概的意思应该是{{}}中可以取到数据 但是数据不会变化 所以不需要响应 如何做?

阅读 7.5k
5 个回答

v-one 只渲染一次

利用 Object.freeze() 提升性能。
Object.freeze() 可以冻结一个对象,冻结之后不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。该方法返回被冻结的对象。
当你把一个普通的 JavaScript 对象传给 Vue 实例的  data  选项,Vue 将遍历此对象所有的属性,并使用  Object.defineProperty  把这些属性全部转为 getter/setter,这些 getter/setter 对用户来说是不可见的,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。

使用指令 v-once 的话,每次都要使用这个指令,不妨把数据写在选项对象中,用$option 去取

居然没人回答computed和watch?

只要每次都return cache的值就行了...

computed 返回的值,没有被深度 监听。

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