所在的位置: js >> js资源 >> vuejs中vonce与Object

vuejs中vonce与Object

刚学习发现v-once与Object.freeze(Object)都有只进行一次渲染的效果,变量值更新后,相应的值不会变化。既然如此为什么还要设计两个呢,为什么不只设计一个呢,它们具体的区别是什么呢?于是我进行了如下测试:使用v-once标签后,改变a的值为为test....后,浏览器中依然显示a的值为之前的1,并且vm实例watch函数能监听记录a的前后值变化如图控制台中的test....和1.相应的我去掉了v-once;改用Object.freeze()后:从图中我们看出,使用object.freeze(data)后,虽然a的值依然为旧值1,但是控制台没有了相应的新旧值。从官方文档中一句话我们也可以看出:Object.freeze(),这会阻止修改现有的属性,也意味着响应系统无法再追踪变化。从官方文档中对v-once命令的描述如下:通过使用v-once指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。总结:Object.freeze()与v-once表面上都是取原值,但实际上,Object.freeze()会阻止修改现有的属性,即(值不会变),也意味着响应系统无法再追踪变化,而v-once不会阻值修改现有值,只是插入值不会更新。


转载请注明:http://www.aierlanlan.com/rzgz/8546.html