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をインストールする詳細なプロセスを説明します

推薦する

ワンクリックで雨や雪のエフェクトを実現する ThingJS パーティクルエフェクト

目次1. パーティクルエフェクト2. シーンを読み込む3. さまざまな粒子効果の実現エンディング: ...

DockerコンテナにRedisをデプロイする手順の紹介

目次1 つの Redis 設定ファイル2 Dockerコマンドの開始3 docker-compose...

Ubuntuのバックアップ方法(4種類)のまとめ

方法1:リスピンを使用するには、次の手順に従ってください。 sudo add-apt-reposit...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...

Mysqlのマージ結果と水平スプライシングフィールドの実装手順

序文最近、レポート機能に取り組んでいたのですが、ある月に各部署に入社した人と退職した人の数をカウント...

ポップアップはすべて不正なものではありません。ウェブサイトのポップアップをデザインするためのヒント

ポップアップニュースは国内のインターネットサービスでは一般的であり、リアルタイムプッシュ方式はウェブ...

インラインブロックを使用した複数のdiv間の間隔はプログラミング方法とは異なります

inline-block について学習しているときに、境界線と inline-block を持つ複数...

CentOS に Nginx をインストールする方法

公式ドキュメント: https://nginx.org/en/linux_packages.html...

Vue2は応答性を提供するためにprovide injectを実装しています

1. vue2 での従来の書き方 // 親コンポーネントは 'foo' を提供します...

Docker Docker の保存場所を変更する コンテナイメージのサイズ制限を変更する操作

これは新しいバージョンではもう不可能なようで、推奨されません。そうでない場合は、ソフト リンクを直接...

Weibo の一括フォロー解除機能を実装する JavaScript コード

Weibo ユーザーのフォローを一括で解除するクールな JavaScript コードWeibo には...

Windows Server 2012 でファイル サーバーを構築するための詳細な手順

ファイル サーバーは、企業内で最も一般的に使用されるサーバーの一つであり、主にファイル共有を提供する...

React 入門レベルの詳細なメモ

目次1. Reactの基本的な理解1. はじめに2. Reactの特徴3. Reactが効率的な理由...

レスポンシブ Web をデザインするにはどうすればいいですか?レスポンシブウェブデザインのメリットとデメリット

最近レスポンシブ デザインについて学んでいて、これについていくつか整理してみました。写真の一部はイン...

ウェブインターフェースデザインでウェブサイトのスタイルガイドを作成する方法(画像とテキスト付き)

スタイル ガイドとは何でしょうか? 簡単に言えば、ストーリーを伝える方法を説明するドキュメントです。...