Vueカスタム命令の詳細な説明

Vueカスタム命令の詳細な説明

Vueカスタムディレクティブ

カスタムディレクティブ

ページが読み込まれたときに要素にフォーカスを当てるために使用されるグローバルディレクティブv-focusを登録します。

<!DOCTYPE html>
<html>
	<ヘッド>
		<メタ文字セット="utf-8">
		<タイトル></タイトル>
		<script src="../js/vue.js"></script>
	</head>
	<本文>
		<div id="アプリ">
			<v-fo を入力>
		</div>
		<スクリプト>
            // カスタムディレクティブを登録する Vue.directive('fo',{
				挿入:function(el){
                    // 要素にフォーカス el.focus()
				}
			})
			新しいVue({
				el: '#app'
			})
		</スクリプト>
	</本文>
</html>
 

画像-20211112151122161

インターフェースを開き、入力ボックスに直接カーソルを置きます

フック機能

ディレクティブ定義関数は、いくつかのフック関数 (オプション) を提供します。

  • bind : ディレクティブが最初に要素にバインドされるときに 1 回だけ呼び出されます。このフック関数は、バインド中に 1 回実行される初期化アクションを定義するために使用できます。
  • inserted : バインドされた要素が親ノードに挿入されたときに呼び出されます (親ノードが存在する場合に呼び出すことができますが、必ずしもドキュメント内にあるとは限りません)。
  • update : バインドされた値が変更されたかどうかに関係なく、バインドされた要素が配置されているテンプレートが更新されたときに呼び出されます。更新前後のバインディング値を比較することで、不要なテンプレートの更新を無視できます。
  • componentUpdated : バインドされた要素のテンプレートが更新サイクルを完了したときに呼び出されます。
  • unbind : ディレクティブが要素からアンバインドされたときに 1 回だけ呼び出されます。

フック関数のパラメータは主に以下のとおりです。

  • el : 命令がバインドされる要素。これを使用して DOM を直接操作できます。
  • binding : 以下のプロパティを含むオブジェクト
  • name : v- プレフィックスを除いたディレクティブの名前。
  • value : ディレクティブのバインディング値。たとえば、v-my-directive="1+1" の場合、値は 2 になります。
  • oldValue : ディレクティブにバインドされた以前の値。値が変更されたかどうかに関係なく、update フックと componentUpdated フックでのみ使用できます。
  • expression : バインディング値の式または変数名。たとえば、v-my-directive="1+1" の場合、式の値は "1+1" になります。
  • arg : ディレクティブに渡されるパラメータ。たとえば、v-my-directive:foo の場合、arg の値は "foo" です。
  • modifiers : 修飾子を含むオブジェクト。たとえば、 v-my-directive.foo.bar の場合、修飾子オブジェクト modifiers の値は {foo: true, bar: true} になります。
  • vnode : Vue コンパイルによって生成される仮想ノード。
  • oldVnode : 以前の仮想ノード。update フックと componentUpdated フックでのみ使用できます。

出力関連属性

<!DOCTYPE html>
<html>
	<ヘッド>
		<メタ文字セット="utf-8">
		<タイトル></タイトル>
		<script src="../js/vue.js"></script>
	</head>
	<本文>
		<div id="app" v-hh:abc="mess">
		</div>
		<スクリプト>
			Vue.directive('hh',{
				バインド: 関数(el,binding,vnode){
					var s = JSON.stringify
					el.innerHTML = 'name:'+s(binding.name)+'<br>'+
					'値:'+s(binding.value)+'<br>'+
					'式:'+s(binding.expression)+'<br>'+
					'引数:'+s(binding.arg)+'<br>'+
					'修飾子:'+s(binding.modifiers)+'<br>'+
					'vnode キー:'+Object.keys(vnode).join(',')
				}
			})
			新しいVue({
				el:'#app',
				データ:{
					混乱:'abc'
				}
			})
		</スクリプト>
	</本文>
</html>
 

画像-20211112163153199

アプリケーション例

<!DOCTYPE html>
<html>
	<ヘッド>
		<メタ文字セット="utf-8">
		<タイトル></タイトル>
		<script src="../js/vue.js"></script>
	</head>
	<本文>
		<div id="アプリ">
			<div v-hh="{text:'123',c:'blue'}"></div>
		</div>
		<スクリプト>
			Vue.directive('hh',function(el,binding){
				el.innerHTML=バインディング値テキスト
				el.style.color=バインディング値.c
			})
			新しいVue({
				el:'#app'
			})
		</スクリプト>
	</本文>
</html>
 

画像-20211112164831459

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • vue グローバルカスタム命令とローカルカスタム命令の使用
  • 要素のドラッグを実装するための Vue カスタム命令に関する詳細なコード
  • Vue3のカスタムディレクティブの書き方
  • Vue の 4 つのカスタム命令の説明と使用例
  • vue3 カスタムディレクティブの詳細
  • Vueカスタムディレクティブとその共通フック関数の説明

<<:  ホームページのデザインはウェブデザイナーのレベルを最もよく反映する

>>:  異なるブラウザ間で互換性のあるテキスト配置を実現する CSS

推薦する

Antd+vueは円形属性フォームの動的検証のアイデアを実現します

必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...

テキストの折り畳み特殊効果を実現する HTML+CSS の例

この記事では、主に HTML + CSS を使用してテキストの折りたたみ特殊効果を実現する例を紹介し...

docker の run/cmd/entrypoint の違いの詳細な説明

Dockerfile では、run、cmd、entrypoint はすべてコマンドを実行するために使...

Nginx ベースの HTTPS ウェブサイトを設定する手順

目次序文:暗号化アルゴリズム: 1. HTTPS の概要2. NginxはHTTPSウェブサイト設定...

MySQLがブール型を返すいくつかの状況について簡単に説明します。

mysqlはブール型を返します最初のケースでは、直接戻ります select id='22a...

Lvs+Nginx クラスターを使用して高並列アーキテクチャを構築する例

目次1. Lvsの紹介2. Lvs負荷分散モード2.1 NAT 2.2 ターン2.3 DRモード3....

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...

W3C チュートリアル (6): W3C CSS アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。スタイル シートは...

レスポンシブ原則のソースコード分析のVue解釈

目次初期化初期化状態()初期化プロパティ()初期化データ()観察する()オブザーバーリアクティブを定...

標準的なHTMLの書き方は、Dreamweaverによって自動的に生成されるものとは異なります。

コードをコピーコードは次のとおりです。 <!--doctype はドキュメント タイプ htm...

MySQLカスタム関数の原理と使用法の分析

この記事では、例を使用して MySQL カスタム関数の原理と使用方法を説明します。ご参考までに、詳細...

JavaScript でツリー構造を構築するための効率的なアルゴリズムについての簡単な説明

目次導入アイデアID配列インデックスのマッピング関係を確立するツリー構造の構築原理要約する導入組織階...

Macでのファイル権限の表示と設定の詳細な説明

序文Mac システムのターミナルでファイルの権限を変更するには、Linux の chmod コマンド...

Tomcatにデプロイされたアプリケーションがフロントエンドページにアクセスできない問題について

最近、実践的なトレーニング プロジェクトを実行する際に ssm フレームワークを使用しました。プロジ...

CSS マルチレベルメニュー実装コード

これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...