私はルートVue 2のインスタンスを自分のアプリケーションのすべてのページにマウントしているので、私のアプリケーションの2ページだけにアクセスするメソッドを追加する必要があります。私はルートVueのインスタンスにこれらのメソッドを追加することができますが、私は、それらのメソッドは、アプリケーション内の他のすべてのページから利用可能になると私はしたくない依存関係があるので、すべてのページにインポートします。ルートビューのインスタンスを拡張する
// page1.js
Vue.prototype.method1 = function(){...}
しかし、私は、これらの方法Iにアクセスする必要がある2ページ目:私は、私はこれらのメソッドを必要とするページにロードする別のJSファイルにグローバルVueのプロトタイプを拡張することについて考え
// app.js
//## Root Vue Instance
window.App = new Vue({
el: '#app',
methods: {
...
}
})
自分自身を繰り返す必要があります。
// page2.js
Vue.prototype.method1 = function(){...}
これについては、どのような方法が推奨されますか?たぶん、Vueミックスインまたはプラグインのユースケースがあります。
ミックスインをルートインスタンスに追加する必要がありますが、これを行うことで、私が避けようとしているすべてのページにそのようなコードをロードするのと同じ効果が得られます。 – enriqg9
@ enriqg9 2つのページに排他的なコードでmixinをインポートするか、ランタイムにmixinをロードするかどうか(if ... else)と[動的にインポートする](https://webpack.js .org/guides/code-splitting /#dynamic-imports) –
@ riyaz-aliが正しいです。 mixin: '[yourMixin ']'をそれぞれの 'data'や' methods'、componentや.vueファイルのように設定することで、mixinを1つ以上のインスタンスにインポートすることができます。この場合、すべてのページにあるわけではありません。 Vue.mixin( 'yourMixinName'、yourMixin);でmixinをglobalyに追加すると、コードはすべてのページとコンポーネントにありますが、これはあなたが望むものではありません。 – Reiner