84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
Vue.js プロジェクトの main.js でグローバル変数を宣言しました。
main.js
どこでも使いたい。 this.$API を使用すると正常に動作します。
this.$API
しかし、Vuex ではそれは機能しません。
ここで this.$API は 未定義です。
Vuex で $API を使用するにはどうすればよいですか。
$API
私は Vue 3 を使用していますが、Vue.prototype.$foo はこのバージョンでは削除されているようです。また、私のバージョンの VueX には this._vm が存在しないこともわかりました。
Vue.prototype.$foo
this._vm
Vue 3 ドキュメントで提供されている Provide/Inject メソッドを調べました。これはコンポーネント内からグローバル変数にアクセスする場合にはうまく機能しますが、ストア内からはアクセスできません。
私が探している解決策は、Vue の globalProperties store でオブジェクトと標準プロパティを使用し、アプリをインストールする前にそれらを設定することです。
store
main.js:
これについて気に入っている点は、ストレージとコンポーネントで同じ方法でグローバル変数にアクセスできることです。
コンポーネント内:
...オペレーション、ミューテーション、ゲッターを介して同様に this.$conf.API_URL にアクセスできます。
this.$conf.API_URL
このソリューションを見つけたら、ストア内から Vue インスタンス全体にアクセスする必要はなくなりましたが、何らかの理由で必要な場合は、 store.$app = app ;同じように割り当てることができます。 main.js 内の場所。
store.$app = app
Vue 2 および Vuex 3 の回答
私は Vue 3 を使用していますが、
Vue.prototype.$foo
はこのバージョンでは削除されているようです。また、私のバージョンの VueX にはthis._vm
が存在しないこともわかりました。Vue 3 ドキュメントで提供されている Provide/Inject メソッドを調べました。これはコンポーネント内からグローバル変数にアクセスする場合にはうまく機能しますが、ストア内からはアクセスできません。
私が探している解決策は、Vue の globalProperties
store
でオブジェクトと標準プロパティを使用し、アプリをインストールする前にそれらを設定することです。
リーリーmain.js
:これについて気に入っている点は、ストレージとコンポーネントで同じ方法でグローバル変数にアクセスできることです。
コンポーネント内:
リーリー...オペレーション、ミューテーション、ゲッターを介して同様に
this.$conf.API_URL
にアクセスできます。このソリューションを見つけたら、ストア内から Vue インスタンス全体にアクセスする必要はなくなりましたが、何らかの理由で必要な場合は、
store.$app = app
;同じように割り当てることができます。main.js
内の場所。Vue 2 および Vuex 3 の回答
にアクセスすると、ストア内の vue インスタンスにアクセスできます。 リーリーthis._vm