我正在關(guān)注 Vue 3 文檔,以了解如何轉(zhuǎn)向使用 <script setup>
標(biāo)籤來(lái)簡(jiǎn)化我的元件程式碼。
使用此設(shè)定的好處之一是,您不再需要使用匯出預(yù)設(shè)樣板來(lái)明確傳回物件:在頂級(jí)範(fàn)圍內(nèi)聲明的任何內(nèi)容都會(huì)在範(fàn)本中自動(dòng)可用。
我遇到的問(wèn)題是,在我的應(yīng)用程式中,我有一個(gè)非常大的物件作為我的初始狀態(tài),在我的正常Vue 3 應(yīng)用程式中,我可以返回該物件並自動(dòng)解構(gòu),如下所示:
<script> import { reactive, toRefs } from 'vue' export default { setup() { const state = reactive({ foo: 1, bar: 2, // the rest of a very large object }) return toRefs(state) } } </script>
這使我不必將物件中的每個(gè)項(xiàng)目聲明為其自己的 ref(),從而刪除樣板檔案。
我的問(wèn)題是,如何在 Vue 模式下實(shí)現(xiàn)相同的自動(dòng)解構(gòu),它只檢測(cè)頂級(jí)聲明?我希望能夠直接引用物件的鍵,而不必使用 state.foo 或 state.bar,但不必將每個(gè)鍵明確宣告為 const 以便使其在 中可用
<script setup> import { reactive, toRefs } from 'vue' const state = reactive({ foo: 1, bar: 2, // the rest of a very large object }) const { foo, bar, ? } = toRefs(state) // how do I destructure this dynamically? </script>
您可以像現(xiàn)在一樣解構(gòu)對(duì)象,並使用展開運(yùn)算子來(lái)儲(chǔ)存其餘的物件鍵和值。
sssccc
除了 foo 和 bar 之外的每個(gè)鍵都可以透過(guò)存取其餘變數(shù)來(lái)存取。喜歡 rest.test
如果這不是您想要的,我認(rèn)為您嘗試做的事情是不可能的。
如果我的答案不是您想要的,請(qǐng)參閱這篇文章: 如何在 ES6 中解構(gòu)為動(dòng)態(tài)命名變數(shù)?