Vue.use とは何かについて簡単に説明します。
Vue.use とは一体何ですか? この記事では Vue.use について紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
プロジェクト開発に Vue を使用すると、非常にハイエンドに感じられる Vue.use
を通じて多くのホイールが使用されていることがわかります。
しかし、Vue.use
とは一体何なのでしょうか?何が起こるか見てみましょう。
実際、これらのホイールはプラグインと呼ばれることがあり、その機能範囲は厳密には制限されておらず、通常は次のタイプが含まれます:
- グローバル メソッドまたは属性の追加。例:
vue-custom-element
- グローバル リソースを追加します: ディレクティブ/フィルター/トランジション/コンポーネントなど。たとえば、
vue-touch
- は、グローバル ミキシングを通じていくつかのコンポーネント オプションを追加します。たとえば、
vue-router
- は、
Vue
インスタンス メソッドをVue.prototype
に追加します。 - 上記の関数を 1 つ以上提供しながら、独自の API を提供するライブラリ。たとえば、
vue-router
規模の大小に関わらず、プラグインが実現したい機能は上記に過ぎません。ただし、これによって複雑なプラグインの作成が妨げられるわけではありませんが、ユーザーにはプラグイン内で何が行われているかに注意を払う必要のないシンプルな使用方法を提供したいと考えています。固定 Vue は、特に new Vue()
の前にプラグインを使用するための使用メソッドを提供します。
公式に提供されているプラグイン (vue-router
、vuex
など) であるか、サードパーティのプラグイン ( など) であるか。 ElementUI
、ant
) はすべてこの方式を採用していますが、プラグイン内の機能は異なります。もちろん、このようなプラグインは他にもたくさんあり、awesome-vue にはコミュニティによって提供されたプラグインとライブラリの大規模なコレクションがあります。
次に、この謎の use
メソッドがどのように実装されるかを見てみましょう。
Vue.js
プラグインは install
メソッドを公開する必要があります。このメソッドの最初のパラメータは Vue
コンストラクタで、2 番目のパラメータはプラグイン設定で渡すために使用されるオプションのオプション オブジェクトです:
MyPlugin.install = function (Vue, options) { // 1. 添加全局方法或属性 Vue.myGlobalMethod = function () { // 逻辑... } // 2. 添加全局资源 Vue.directive('my-directive', { bind (el, binding, vnode, oldVnode) { // 逻辑... } ... }) // 3. 注入组件选项 Vue.mixin({ created: function () { // 逻辑... } ... }) // 4. 添加实例方法 Vue.prototype.$myMethod = function (methodOptions) { // 逻辑... } // 5. 注册全局组件 Vue.component('myButton',{ // ...组件选项 }) }
Vue.use(MyPlugin,{ // ...options })
プラグインの内部上に示したように、実際には上記のことだけで、非常に単純です。次に、実際のケースを見てみましょう。 ElementUI
:
const components = [ Pagination, Dialog, Autocomplete/* 此处由于篇幅省略若干个组件 */]; const install = function(Vue, opts = {}) { locale.use(opts.locale); locale.i18n(opts.i18n); // 注册全局组件 components.forEach(component => { Vue.component(component.name, component); }); Vue.use(InfiniteScroll); Vue.use(Loading.directive); // 添加实例方法 Vue.prototype.$ELEMENT = { size: opts.size || '', zIndex: opts.zIndex || 2000 }; // 添加实例方法 Vue.prototype.$loading = Loading.service; Vue.prototype.$msgbox = MessageBox; Vue.prototype.$alert = MessageBox.alert; Vue.prototype.$confirm = MessageBox.confirm; Vue.prototype.$prompt = MessageBox.prompt; Vue.prototype.$notify = Notification; Vue.prototype.$message = Message; }; /* istanbul ignore if */ if (typeof window !== 'undefined' && window.Vue) { install(window.Vue); } export default { version: '2.13.0', locale: locale.use, i18n: locale.i18n, install, CollapseTransition, Loading, Pagination, Dialog, Autocomplete, // ...other components };
プラグインを自分で実装するのは、プラグインが公開されている限り非常に簡単であることが簡単にわかります。外の世界install
メソッドで十分です。このメソッドは、Vue.use
を使用するときに呼び出されます。したがって、実装するコンテンツを install
内に置くだけで済みます。この利点は、プラグインが最初に呼び出す必要があるメソッドが install
にカプセル化されており、より効率的でスケーラブルであることです。
ここの install
では実際にすべてのコンポーネントが紹介されていることに気づくかもしれません。大規模なプラグイン ライブラリであるため、パフォーマンス上の問題が発生する可能性があります。 ElementUI
を使用したことのある学生は、オンデマンドの導入をサポートしていることを誰もが知っています。実際、いくつかのヒントは上記の例にあります。
const components = [ Pagination, Dialog, Autocomplete/* 此处由于篇幅省略若干个组件 */]; // ....省去中间内容 export default { version: '2.13.0', locale: locale.use, i18n: locale.i18n, install, CollapseTransition, Loading, Pagination, Dialog, Autocomplete, // ...other components };
ここでは、各コンポーネントが個別にエクスポートされ、各コンポーネント内で同様に公開されていますinstall
各コンポーネントをアセンブルして、 Vue.use
Each できるようにします。コンポーネントはオンデマンドで導入されます。
import Alert from './src/main'; /* istanbul ignore next */ Alert.install = function(Vue) { Vue.component(Alert.name, Alert); }; export default Alert;
上記に加えて、注目に値する点がいくつかあります。
- プラグインがオブジェクトを渡すと、その
install# が実行されます。 ## メソッドが関数の場合、それ自体が実行され、
bindは
nullであり、追加のパラメーター
- を持つ
installed
属性がプラグインに追加されます。Vue.use
メソッドは、プラグインのinstalled
属性を内部的に検出して、プラグイン
if (typeof plugin.install === 'function') { plugin.install.apply(plugin, args); } else if (typeof plugin === 'function') { plugin.apply(null, args); }
- true
は実際には神秘的ではありません。内装は私たちが通常使用しているものと同じで、ただ高級なコートを着せただけです。開発中にこのメソッドを使用してみることもできます。これはシンプルなだけでなく強力でもあります。
プログラミング入門2020 フロントエンド vue インタビューの質問の概要 (回答付き) vue チュートリアル推奨: 2020 年の最新の vue.js ビデオ チュートリアル 5 選プログラミング関連の知識の詳細については、
以上がVue.use とは何かについて簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Vue フレームワークを使用してフロントエンド プロジェクトを開発する場合、デプロイ時に複数の環境をデプロイすることになりますが、開発環境、テスト環境、オンライン環境で呼び出されるインターフェイス ドメイン名が異なることがよくあります。どうすれば区別できるでしょうか?それは環境変数とパターンを使用することです。

Ace は、JavaScript で書かれた埋め込み可能なコード エディターです。 Sublime、Vim、TextMate などのネイティブ エディターの機能とパフォーマンスに匹敵します。あらゆる Web ページや JavaScript アプリケーションに簡単に埋め込むことができます。 Ace は Cloud9 IDE のメイン エディタとして維持されており、Mozilla Skywriter (Bespin) プロジェクトの後継です。

コンポーネント化とモジュール化の違い: モジュール化はコード ロジックの観点から分割され、コードの階層化された開発が容易になり、各機能モジュールの機能の一貫性が保証されます。コンポーネント化は UI インターフェイスの観点から計画され、フロントエンドのコンポーネント化により UI コンポーネントの再利用が容易になります。

Vue.js は、今日のフロントエンド開発において非常に人気のあるフレームワークとなっています。 Vue.js が進化し続けるにつれて、単体テストの重要性がますます高まっています。今日は、Vue.js 3 で単体テストを作成する方法を検討し、いくつかのベスト プラクティスと一般的な問題と解決策を提供します。

前書き: vue3 の開発では、reactive は応答性の高いデータを実装するメソッドを提供します。これは日常の開発で頻繁に使用される API です。この記事では、著者はその内部動作メカニズムを探ります。

Vue.js では、開発者は、JSX 構文とテンプレート構文という 2 つの異なる構文を使用してユーザー インターフェイスを作成できます。どちらの構文にもそれぞれ長所と短所があるので、それらの違い、長所と短所について説明します。

Vue3 動的コンポーネントで例外を処理するにはどうすればよいですか?次の記事では、Vue3 の動的コンポーネントの例外処理方法について説明します。

Vue3 のリリース以来、単語合成 API は Vue を書く学生の視野に入ってきました。合成 API が以前のオプション API よりもどれほど優れているかは誰もが聞いたことがあると思います。そして、@ のリリースにより、 vue/composition-api プラグイン、Vue2 学生もバスに乗れます. 次に、主に Response ref と Reactive を使用して、このプラグインがどのようにこれを実現しているかを詳細に分析します。
