序文: Vue を使用する場合、多くの場合、カスタム プラグインをいくつか使用して記述し、 この記事を読むと、次のことが分かります。
さて、これ以上何も言わずに、始めましょう! ! ! 1. Vuex&Vue-Routerでのインストール処理ここに、皆さんに考えてほしい 2 つの質問があります。穴を掘るようなものです。以下で 1 つずつ答えていきます。
実際、両者の原理は同じです。ここでは例として クラスルーター{ コンストラクタ(オプション) { ... } } Router.install = function(_Vue) { _Vue.mixin({ 作成前() { if (this.$options.router) { _Vue.prototype.$router = this.$options.router } } }) } デフォルトルーターをエクスポートします。
この場合は、大胆な判断をしてみましょう。 心配しないでください。最初の問題は解決したので、今度は 2 番目の穴を埋めましょう。 通常は // ルーター/index.js 'vue-router' という形式で VueRouter をインポートします。 'vue' から Vue をインポートします。 Vue.use(VueRouter); 定数_router = [ ... ] 定数 Router = new VueRouter(_router); デフォルトルーターをエクスポートします。 // メイン.js 'vue' から Vue をインポートします。 'router' から router をインポートします。 新しいVue({ ルーター、 ... }).$mount('#app'); 最初の例を組み合わせて、まず分析してみましょう。
噛む! ! !要素が検出されましたので、大胆に推測してみましょう。 2. Vueでのインストールの内部実装よく使われるライブラリ エクスポート関数 initUse (Vue: GlobalAPI) { // インスタンスにマウントされたuseメソッドを登録する Vue.use = function (plugin: Function | Object) { // 現在のプラグインの配列を初期化します const installedPlugins = (this._installedPlugins || (this._installedPlugins = [])) // このプラグインがすでに登録されている場合は処理しません if (installedPlugins.indexOf(plugin) > -1) { これを返す } ... // ここがポイントです! ! ! if (typeof plugin.install === 'function') { // install がプラグイン内の関数である場合、install メソッドを呼び出し、プラグインを指定して、いくつかのパラメータを plugin.install.apply(plugin, args) に渡します。 } そうでない場合 (typeof plugin === 'function') { // プラグイン自体が関数である場合は、それをインストールメソッドとして扱い、プラグインを指し示し、一連のパラメータを plugin.apply(null, args) に渡します。 } //プラグインをプラグイン配列に入れるinstalledPlugins.push(plugin) これを返す } } ソースコードのこの部分は非常に簡潔で、読みやすいです。つまり、使用時にプラグインの種類を判別し、プラグイン自体の 結論: Vue のプラグインの仕組みについて、より深く理解できたでしょうか?実際、プラグインを開発するときに、 Vue のプラグインの仕組みと 以下もご興味があるかもしれません:
|
<<: IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ
>>: MySQL ストアド プロシージャ (in、out、inout) の詳細な説明
Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...
CentOS7 のデフォルトのファイアウォールは iptables ではなく、firewalle で...
デフォルトでは、ヘッダーの幅と高さはコンテンツに応じて自動的に調整されます。ヘッダーの幅と高さを手動...
序文この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルを...
目次概要マップされた型を使用して Object.freeze() を構築するマッピングタイプの構文は...
この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...
目次1. サーバーAのmy.cnfファイルを変更する2. サーバーBのmy.cnfファイルを変更する...
インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...
この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...
1. バージョン情報 # cat /etc/system-release CentOS Linux ...
MySQL エラー:エラー コード: 1293 テーブル定義が正しくありません。CURRENT_T...
CSS 3.0 とビデオを組み合わせて実現したクリエイティブなオープニングをご紹介します。効果は次の...
目次まず効果を見てみましょう:成し遂げる:要約:まず効果を見てみましょう: 成し遂げる: 1. ナビ...
注意を払う必要があります。HTML Police がコードを調べて、意味のないタグをすべて見つけ出す...
この記事では、JavaScriptのランダムロールコールテーブルの具体的なコードを参考までに紹介しま...