Vue.jsコンポーネントライブラリイベントシステムの設計プロセス(コード)
この記事の内容は、Vue.js コンポーネント ライブラリ イベント システムの設計プロセス (コード) に関するもので、必要な方は参考にしていただければ幸いです。
input-number を例に挙げてみましょう:
@ は v-on 命令の略称で、イベント リスナーをバインドするために使用されます:
<InputNumber @on-change="change" :max="10" :min="1" v-model="value1"> </InputNumber>
コンポーネントを使用するときは、custom
を登録します。のイベント: 自定义
的事件:
methods: { change (v) { console.log(v) } }
在组件内部触发的方式也很简单:
调用了$emit
来触发当前实例上的事件,事件名为 on-change
this.$emit('on-change', val);
那思路来了,如果 InputNumber
外层嵌套在了某一个 FormItem
组件里面,事件之间的互相调用也是类似的,只是多了个假设:
像 element
和 iview
多设计了一个 mixins
,里面提供了一个方法:dispatch
它接受 3
个参数:
componentName 组件名
eventName 自定义事件名称
params 事件传递的参数
dispatch(componentName, eventName, params) { }
比如类似 input-number
,很多这种表单内嵌的组件,都会设计和 FormItem
的互动:
this.dispatch('FormItem', 'on-form-change', val);
我们在设计 FormItem
组件的时候,注意:
export default { name: 'FormItem' }
然后注册一个自定义事件,方式也是一样的:
<Form-item @on-form-change="test"> </Form-item>
我们来看一下 dispatch 函数的内部:
思路是一层一层往上找父元素:
$parent -- 父实例
$root -- 组件树的根 Vue 实例
var parent = this.$parent || this.$root;
获取父组件的 name:
var name = parent.$options.name;
开始循环判断:
while (parent && (!name || name !== componentName)) { // ... }
比如上面的input-number
内部调用了 dispatch,传入了参数,就是一直找父元素 name
为 FormItem
parent = parent.$parent; if (parent) { name = parent.$options.name; }
$emit
を呼び出して現在のインスタンスでイベントをトリガーします。イベント名は on- <code>InputNumber
の外側の層が特定の FormItem
コンポーネントにネストされている場合、イベント間の相互呼び出しは似ていますが、ここでアイデアが生まれます。は追加の仮定です。
element
と iview
のように、もう 1 つの mixins
があります。メソッドを提供するように設計されています: dispatch
3
パラメータを受け入れます:
if (parent) { parent.$emit.apply(parent, [eventName].concat(params)); }
input-number には、そのようなフォームの多くが埋め込まれています。 コンポーネントは、<code>FormItem
と対話するように設計されます: rrreee
FormItem
コンポーネントを設計するときは、次のことに注意してください: rrreee 次に、登録します同じ方法でカスタム イベントを作成します: rrreee
ディスパッチ関数の内部を見てみましょう: そのアイデアは、レイヤーごとに親要素を見つけることです: 🎜- 🎜$parent -- 親インスタンス 🎜
- 🎜$root -- コンポーネント ツリーのルート Vue インスタンス 🎜
input-number
は内部で dispatch を呼び出し、パラメータを渡します。親要素 name
を探し続けます。 > それは FormItem
です。 while 内: 🎜🎜次にその親の例を探し、名前を取得します 🎜rrreee🎜最後に見つかった場合: 🎜🎜これはカスタムの最初のトリガーと同じですイベント: $emit🎜rrreee🎜関連する推奨事項: 🎜🎜🎜Vue.js コンポーネントの通信子コンポーネントから親コンポーネントへの通信 (コード)🎜🎜🎜🎜🎜Vue.js モバイル コンポーネント ライブラリの使用方法🎜🎜🎜🎜以上がVue.jsコンポーネントライブラリイベントシステムの設計プロセス(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ 今日のインターネットの急速な発展の時代において、フロントエンド開発はますます重要になっています。 Web サイトやアプリケーションのエクスペリエンスに対するユーザーの要求がますます高まっているため、フロントエンド開発者は、より効率的で柔軟なツールを使用して、応答性の高いインタラクティブなインターフェイスを作成する必要があります。フロントエンド開発の分野における 2 つの重要なテクノロジーである PHP と Vue.js は、組み合わせることで完璧なツールと見なされます。この記事では、PHP と Vue の組み合わせと、読者がこれら 2 つをよりよく理解し、適用できるようにするための詳細なコード例について説明します。

フロントエンド開発のインタビューでは、HTML/CSS の基本、JavaScript の基本、フレームワークとライブラリ、プロジェクトの経験、アルゴリズムとデータ構造、パフォーマンスの最適化、クロスドメイン リクエスト、フロントエンド エンジニアリング、デザインパターン、新しいテクノロジーとトレンド。面接官の質問は、候補者の技術スキル、プロジェクトの経験、業界のトレンドの理解を評価するように設計されています。したがって、候補者はこれらの分野で自分の能力と専門知識を証明するために十分な準備をしておく必要があります。

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

Django は、迅速な開発とクリーンなメソッドを重視した Python で書かれた Web アプリケーション フレームワークです。 Django は Web フレームワークですが、Django がフロントエンドなのかバックエンドなのかという質問に答えるには、フロントエンドとバックエンドの概念を深く理解する必要があります。フロントエンドはユーザーが直接対話するインターフェイスを指し、バックエンドはサーバー側プログラムを指し、HTTP プロトコルを通じてデータと対話します。フロントエンドとバックエンドが分離されている場合、フロントエンドとバックエンドのプログラムをそれぞれ独立して開発して、ビジネス ロジックとインタラクティブ効果、およびデータ交換を実装できます。

Go 言語は、高速で効率的なプログラミング言語として、バックエンド開発の分野で広く普及しています。ただし、Go 言語をフロントエンド開発と結びつける人はほとんどいません。実際、フロントエンド開発に Go 言語を使用すると、効率が向上するだけでなく、開発者に新たな視野をもたらすことができます。この記事では、フロントエンド開発に Go 言語を使用する可能性を探り、読者がこの分野をよりよく理解できるように具体的なコード例を示します。従来のフロントエンド開発では、ユーザー インターフェイスの構築に JavaScript、HTML、CSS がよく使用されます。

Golang とフロントエンド テクノロジーの組み合わせ: Golang がフロントエンド分野でどのような役割を果たしているかを調べるには、具体的なコード例が必要です。インターネットとモバイル アプリケーションの急速な発展に伴い、フロントエンド テクノロジーの重要性がますます高まっています。この分野では、強力なバックエンド プログラミング言語としての Golang も重要な役割を果たします。この記事では、Golang がどのようにフロントエンド テクノロジーと組み合わされるかを検討し、具体的なコード例を通じてフロントエンド分野での可能性を実証します。フロントエンド分野における Golang の役割は、効率的で簡潔かつ学びやすいものとしてです。

Django: フロントエンド開発とバックエンド開発の両方を処理できる魔法のフレームワークです。 Django は、効率的でスケーラブルな Web アプリケーション フレームワークです。 MVCやMTVなど複数のWeb開発モデルをサポートし、高品質なWebアプリケーションを簡単に開発できます。 Django はバックエンド開発をサポートするだけでなく、フロントエンド インターフェイスを迅速に構築し、テンプレート言語を通じて柔軟なビュー表示を実現します。 Django はフロントエンド開発とバックエンド開発をシームレスに統合するため、開発者は学習に特化する必要がありません。

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが
