4
我想创建一个Vue.js组件从它的父组件接收性质,例如数据观察:如何禁用vue.js组件属性
<table-cell :value="foo" format="date" />
由于value
和format
被定义为属性,Vue的会自动将观察员注册到他们的值。总的来说,这很好,但对于我的用例,我肯定知道这些值不会改变,因此不需要遵守。
鉴于我的表格单元格组件可以在1000行和10列的表格中,这2个属性将创建20,000个观察者,并且我想避免所有这些开销(并且我的真正表格单元格组件具有更多复杂的属性)。
是否有任何方法禁止观察组件属性,以避免浪费CPU &内存资源?
更新: 我发现与功能组件的方法一个低级别的解决方案,这里解释:https://vuejs.org/v2/guide/render-function.html#Functional-Components
我有这个的jsfiddle测试它:https://jsfiddle.net/50wL7mdz/12143/
我不知道这是否是正确的做法...
不幸的是,即使您删除了'this.dinamicProp',您也只是添加一个对动态属性的引用,它仍然会被观察到。 –
使用插槽并在插槽中传递静态数据? –
插槽选项可用于单个&纯文本属性。如果我需要传递多个属性并且其中一些属性可能是对象,那么我将不得不解析复杂的文本,这会破坏最初的目的。 –