序文: 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) の詳細な説明
バージョン 0.6 あたりで、Docker に privileged が導入されました。このパラメー...
MySQL では、SQL ステートメント rename table を使用してテーブル名を変更できま...
目次1. 開発環境から本番環境への移行2. 統一されたリクエストパスを設定する3. パッケージ化コマ...
簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...
インターネット上には Linux サーバーを監視するためのツール、コンポーネント、プログラムが多数あ...
ステップ 1: メモ帳を使用して、MySQL インストール ディレクトリの「my.ini」ファイルを...
この記事では、トークンログイン認証を実装するためのVUEの具体的なコードを例として紹介します。具体的...
約 1 年前、私は「虫眼鏡効果を模倣するいくつかの方法の原理の分析」という記事を書きました。当時、自...
1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...
SSHPASSをインストールする最新のオペレーティング システムでは、sshpass パッケージはデ...
IIS7 では、「URL REWRITE2」疑似静的モジュールがインストールされているかどうかを確...
ご存知のとおり、私たちが毎日閲覧する Web ページ、Web サイト、または Web ページには独自...
1. はじめにMySQL にログインすると、次のような警告が表示されることがよくあります。警告: コ...
目次パーティションテーブルとはパーティションテーブルの適用シナリオパーティションテーブルの制限パーテ...
目次ネイティブJS GETリクエストの送信方法投稿リクエストの送信方法パラメータ付きのGETリクエス...