2017-01-30 56 views
4

我想創建一個Vue.js組件從它的父組件接收性質,例如數據觀察:如何禁用vue.js組件屬性

<table-cell :value="foo" format="date" /> 

由於valueformat被定義爲屬性,Vue的會自動將觀察員註冊到他們的值。總的來說,這很好,但對於我的用例,我肯定知道這些值不會改變,因此不需要遵守。

鑑於我的表格單元格組件可以在1000行和10列的表格中,這2個屬性將創建20,000個觀察者,並且我想避免所有這些開銷(並且我的真正表格單元格組件具有更多複雜的屬性)。

是否有任何方法禁止觀察組件屬性,以避免浪費CPU &內存資源?

更新: 我發現與功能組件的方法一個低級別的解決方案,這裏解釋:https://vuejs.org/v2/guide/render-function.html#Functional-Components

我有這個的jsfiddle測試它:https://jsfiddle.net/50wL7mdz/12143/

我不知道這是否是正確的做法...

回答

1

傳遞它與自定義數據我認爲像<your-component :data-value='foo' :data-format='date'>

它會做你想做的。

+0

不幸的是,即使您刪除了'this.dinamicProp',您也只是添加一個對動態屬性的引用,它仍然會被觀察到。 –

+0

使用插槽並在插槽中傳遞靜態數據? –

+0

插槽選項可​​用於單個&純文本屬性。如果我需要傳遞多個屬性並且其中一些屬性可能是對象,那麼我將不得不解析複雜的文本,這會破壞最初的目的。 –

相關問題