検索

ホームページ  >  に質問  >  本文

Vue 3 構成 API の定型コードの削減: ルーターとストレージの実装の簡素化

<p>Vue 3 の Comboposition API を使用するには、各ビューに次のコードが必要です。</p> <pre class="brush:js;toolbar:false;">import { useRouter, useRoute } from 'vue-router' 「vuex」からインポート { useStore } デフォルトのエクスポート { 設定() { const ルーター = useRouter() const ストア = useStore() // ... } } </pre> <p>アプリケーションの作成時にそれらを一度宣言し、作成したアプリケーションに渡して、これらの宣言を必要とせずにアプリケーションビューで単に使用する方法はありますか? vue2 では、これらはアプリケーションの初期化時に渡されるため、<code>this.$store</code> / <code>this.$router</code> は正常に動作します。 </p> <p>問題を引き起こしやすいグローバル変数を使用するアイデア: <code>app.vue</code> では、次のように変数を 1 回宣言できます: </p> <pre class="brush:js;toolbar:false;">「vuex」から { useStore } をインポートします デフォルトのエクスポート { 設定() { globalthis.store = useStore() </pre> <p>これにより、<code>store</code> がどこでも利用できるようになります。 </p>
P粉281089485P粉281089485456日前478

全員に返信(1)返信します

  • P粉436052364

    P粉4360523642023-08-30 14:44:15

    setup() では、コンポーネントがまだ作成されていないため、コンポーネント インスタンスは使用できません。そのため、Composition API には を使用するための this コンテキストがありません。 this.$store

    追加のインポートを必要とせずに setup() でストア/ルーター変数を使用できるようにする唯一の方法 は、それらをグローバル変数として window## にアタッチすることだと思います #/globalThis (グローバル変数の制限を無視): リーリー オプション API とテンプレートでは、引き続き

    $store

    $router を使用してストアとルーターにアクセスできることに注意してください。具体的な例については、## を参照してください。 #Options API## テンプレート の例 (Vuex 4 および Vue Router 4 の場合): リーリー

    返事
    0
  • キャンセル返事