Vue で $attrs と $listeners を使用するチュートリアル

Vue で $attrs と $listeners を使用するチュートリアル

導入

$属性

すべての親コンポーネントのプロパティを継承します (props を通じて受け取られないプロパティには、クラス名とスタイルが含まれます)。

継承属性:

非 props 属性がタグの最外層に表示されるかどうか。デフォルト値は true です。これは、すべての親コンポーネント属性 (props 固有のバインディングを除く) が通常の HTML 機能として継承され、子コンポーネントのルート要素に適用されることを意味します。コンポーネントのルート要素に機能を継承させたくない場合は、inheritAttrs: false を設定しますが、クラスは継承されます。

$リスナー

これは、すべてのメソッド バインディングを受け取ることができるオブジェクトであり、このコンポーネントで動作するすべてのリスナーが含まれています。v-on="$listeners" の場合、すべてのイベント リスナーはこのコンポーネントの特定の子要素に送られます。

親コンポーネント内

<テンプレート>
  <div id="アプリ">
    <Son src="https://img01.yzcdn.cn/vant/logo.png"></Son>
  </div>
</テンプレート>
 
<スクリプト>
「./components/son.vue」からSonをインポートします。
エクスポートデフォルト{
  名前:「アプリ」、
  コンポーネント:
    息子、
  },
};
</スクリプト>
 
<スタイル></スタイル>

サブコンポーネント内

<テンプレート>
  <div id="アプリ">
    <Son src="https://img01.yzcdn.cn/vant/logo.png"></Son>
  </div>
</テンプレート>
 
<スクリプト>
「./components/son.vue」からSonをインポートします。
エクスポートデフォルト{
  名前:「アプリ」、
  コンポーネント:
    息子、
  },
};
</スクリプト>
 
<スタイル></スタイル>

inheritAttrsがデフォルトでfalseの場合、属性は最も外側のサブコンポーネントに渡されることがわかります。

inheritAttrsがtrueの場合

属性を受け取るためにpropsを使用する場合、属性は表示されません。

概要: コンポーネント タグで渡された属性がサブコンポーネントによって受信されない場合、それらの属性はサブコンポーネント タグの最外層まで実行されます。

非props属性は$attrs {属性名: 属性値}を通じて受け取ることができます。

<テンプレート>
  <div>
    <img v-bind="$attrs" alt="" />
  </div>
</テンプレート>
 
<スクリプト>
エクスポートデフォルト{
  継承属性: false、
};
</スクリプト>
<スタイルスコープ>
.img {
  幅: 100ピクセル;
  高さ: 100px;
}
</スタイル>

クリック イベントを子コンポーネントにバインドすると、クリック イベントはトリガーされません。.native 修飾子を使用すると、正常にバインドできます。

または、$listeners を使用してすべてのメソッドをバインドします。

サブコンポーネント内

結果

要約する

すべての非props属性は$attrsを通じて受け取ることができます

v-bind="$attrs" を使用すると、props以外の属性を対応するタグにバインドできます。コンポーネントにも使用できます。

コンポーネント上のすべてのメソッドバインディングサブコンポーネントは、$listenersを通じて受信できます。

使用法: v-on="$listeners" を使用して、すべてのメソッドをコンポーネントの対応するタグにバインドします。これはコンポーネントにも使用できます。

これで、Vue で $attrs と $listeners を使用する方法に関するチュートリアルは終了です。Vue $attrs $listeners の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue2.xの$attrsと$listenersについて簡単に説明します。
  • vue $attrs と $listeners の使い方と違い
  • Vue で $props、$attrs、$listeners を使用する方法の詳細な説明
  • Vue カプセル化コンポーネント ツール $attrs、$listeners の使用
  • Vue $attrs と inheritAttr を使用してボタンを無効にした効果を実現する
  • Vue コンポーネント通信における $attrs と $listeners の実装原則の分析
  • vue $attrs の使用に関する包括的な分析

<<:  HTMLでのラジオ値の取得、割り当て、登録の詳細な説明

>>:  Docker Composeを使用してDOCleverをインストールする詳細なプロセスを説明します

推薦する

Docker で Java 8 Spring Boot アプリケーションを開発する方法

この記事では、ローカル マシンに Java 8 をインストールせずに、Java 8 を使用して簡単な...

Vue の img の src 画像アドレスの動的スプライシングの問題について

Vue での img の動的スプライシングを見てみましょう。src 画像アドレス、具体的な内容は次の...

JavaScript 関数はランダムな色の検証コードをカプセル化します (完全なコード)

数字、文字、またはランダムな色の数字と文字の混合で構成される n 桁の確認コード。以下に完全なコード...

ウェブデザイナーのウェブデザイン学習経験とスキルのまとめ

会社の影響力が拡大し、製品が改良され続けるにつれて、関連するイメージデザインもそれに追いつき、徐々に...

Vueは透かし効果を簡単に実現します

序文: Vueプロジェクトで透かし効果を使用するには、コンテナを指定できます効果画像: 1. コンテ...

Vue マルチページ構成の詳細

目次1. 複数ページの違い2. SPAとMPA 3. Vue Cli スキャフォールディング構成1....

Dockerコンテナに入る方法と出る方法

1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...

JavaScript でドラッグ可能なプログレスバーを実装する

この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...

Linux CentOS インストール JDK および Tomcat チュートリアル

まずJDKをダウンロードします。ここではjdk-8u181-linux-x64.tar.gzを使用し...

JS は VUE コンポーネントに基づいて都市リスト効果を実装します

この記事の例では、VUEコンポーネントに基づいて都市リストエフェクトを実装するための具体的なコードを...

CSS3 と JavaScript を使用して Web カラー ピッカーのサンプル コードを開発する

この例の Web カラー ピッカー機能は、ページ効果を実現するために CSS3 を使用します。つまり...

Reactでのこのリファレンスの詳細な説明

目次原因:以下を実行します: 1. コンストラクター2.レンダリング機能3.bind関数とarrow...

JavaScript 日付ツールの概要

ユーティリティ = { /** * 死亡年ですか? * @return {Boolse} true...

簡単な手順で純粋な CSS3 で 3D 反転効果を実現

フロントエンド開発者の必須科目であるCSS3は、多くの基本的なアニメーション効果を実現するのに役立ち...

Vue3+Vite+TS は、要素プラスビジネスコンポーネントの二次カプセル化を実装します sfasga

目次1. 構造文字列2. タプルを返す3. Dict辞書にアクセスする4. 図書館を利用する5. リ...