搜尋

首頁  >  問答  >  主體

使用腳本設定和響應式狀態 vue 3 與 toRefs

<p>我正在嘗試在我的 vue 專案中使用腳本設定。 </p> <p>在使用腳本設定之前,我的腳本將是這樣的:</p> <pre class="brush:php;toolbar:false;"><script> import Layout from '../containers/Layout.vue'; import { reactive, toRefs } from 'vue' export default { name: 'Home', setup() { const state = reactive({}); return { ...toRefs(state), }; }, components: { Layout, Layout } } </script></pre> <p>現在我有這樣的:</p> <pre class="brush:php;toolbar:false;"><script setup> import Layout from '../containers/Layout.vue'; import { reactive, toRefs } from 'vue' const state = reactive({}); const props = defineProps({ header: String }) </script></pre> <p>我不確定的是如何在這種情況下使用 toRefs?在第一種情況下,我們返回變量,因此我了解我們使用 <code>...toRefs(state)</code> 的方式 但現在,我該如何使用它?或不再需要了? 謝謝</p>
P粉387108772P粉387108772487 天前527

全部回覆(2)我來回復

  • P粉258083432

    P粉2580834322023-08-27 13:34:51

    如果您想要直接在腳本設定中存取 state 反應的值,您可以使用 物件解構如下所示:

    import { reactive, toRefs } from "vue"
    
    const state = reactive({ name: "admin", age: 20 })
    const { name, age } = toRefs(state)
    

    然後您可以直接在模板中存取您的值

    <template>
        {{ name }}
    </template>
    

    但是,必須重新輸入所有屬性,這不太方便

    回覆
    0
  • P粉593649715

    P粉5936497152023-08-27 11:05:34

    腳本設定隱含翻譯變數定義

    const a = ...

    return {
       a: ...
    }

    腳本設定中的return {...dynamicValue}是不可取代的,它只適用於常見用例。這需要將其與腳本結合。

    return {...toRefs(state)} 沒有好處,因為腳本區塊中不使用產生的參考。即使它們是,它們通常也被定義為單獨的反應值而不是 state 物件:

    const a = ref(...)
    const b = reactive(...)
    
    return { a, b }; // Not needed in script setup

    如果需要將這些值作為單一物件處理,可以將它們組合在一起:

    const a = ref(...)
    const b = reactive(...)
    const state = reactive({ a, b });
    
    return { a, b }; // Not needed in script setup

    對於腳本腳本設定來說,其運作方式是相同的。

    回覆
    0
  • 取消回覆