デモコマンドをカスタマイズするVue カスタム ディレクティブの構文は次のとおりです。 Vue.directive(id, 定義) 渡される 2 つのパラメータ、id は命令 ID を参照し、definition は定義オブジェクトを参照します。その中で、定義オブジェクトはいくつかのフック関数を提供できます。 <div id="アプリ"> <!-- 入力ボックスにフォーカスが当たります--> <input type="text" v-focus/> </div> <スクリプト> // グローバルカスタムディレクティブ v-focus を登録する Vue.directive("フォーカス", { // バインドされた要素が DOM に挿入されるとき。 挿入(el, バインディング) { // 要素にフォーカス el.focus(); } }) </スクリプト> <div id="アプリ"> <p v-demo:red="msg">{{msg}}</p> </div> <スクリプト> // グローバルディレクティブ Vue.directive('demo', function (el, binding) { console.log(el) //p タグ console.log(binding) //出力はオブジェクト obj です console.log('コマンド名:'+binding.name) //コマンド名console.log('コマンドバインディング値:'+binding.value) //コマンドバインディング値console.log('バインディング値の文字列形式:'+binding.expression) //バインディング値の文字列形式console.log('コマンドに渡されたパラメーター:'+binding.arg) //コマンドに渡されたパラメーター}) var vm = 新しい Vue({ el: "#app", データ: { メッセージ: 'こんにちは!' }, // ローカルディレクティブ:{ デモ:{ 挿入: 関数 (el) { コンソール.log(el) } } } }) </スクリプト> オブジェクトリテラル<div id="アプリ"> <p v-demo="colours">{{colours.text}}</p> </div> <スクリプト> Vue.directive('demo', 関数(el, バインディング) { console.log(el) // pタグ console.log(binding) // 出力はオブジェクトobjです console.log(binding.value) // {color: 'blue',text: 'hello!'} console.log(binding.value.color) // '青' console.log(binding.value.text) // 'hello!' el.style = 'color:' + binding.value.color }) var vm = 新しい Vue({ el: "#app", データ: { 色: 色: '青'、 テキスト: 'こんにちは!' } } }) </スクリプト> ライフサイクルフックディレクティブ定義関数は、いくつかのフック関数を提供します (オプション)。
<div id="アプリ"> <p v-demo="color">{{num}}</p> <button @click="add">追加</button> <button onclick='unbind()'>バインド解除</button> </div> <スクリプト> 関数アンバインド() { vm.$destroy(); //バインドを解除する別のメソッドを開始します} Vue.directive('demo', { // ディレクティブを登録するための 5 つのフック関数 bind: function () { //1. バインドする // バインドの準備をします。たとえば、イベント リスナーや、一度だけ実行する必要があるその他の複雑な操作を追加します console.log('1 - bind'); }, 挿入: function () { //2. ノードにバインド console.log('2 - 挿入'); }, update: function () { //3. コンポーネントの更新 // 取得した新しい値に基づいて対応する更新を実行します。初期値の場合、console.log('3 - update'); も 1 回呼び出されます。 }, componentUpdated: function () { //4. コンポーネントの更新が完了しました console.log('4 - componentUpdated'); }, unbind: function () { //5. Unbind//クリーンアップ操作を実行します。たとえば、bind によってバインドされたイベント リスナーを削除する場合は、console.log('5 - bind'); } }) var vm = 新しい Vue({ el: "#app", データ: { 番号: 10, 色: 「赤」 }, メソッド: { 追加: 関数 () { this.num++; } } }) </スクリプト> トリガー メソッド 1 と 2 を初期化し、[追加] ボタンをクリックしてメソッド 3 と 4 をトリガーし、[バインド解除] ボタンをクリックしてメソッド 5 をトリガーします (以下を参照)。 Vue.js ディレクティブのカスタム命令の詳細な説明に関するこの記事はこれで終わりです。より関連性の高い Vue.js ディレクティブのカスタム命令については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Dockerがプライベート倉庫Harborを構築する手順
この記事では、CSS を使用して半透明の背景と不透明なテキストの効果を実現する方法の例を紹介します。...
この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
序文:前回の記事では、さまざまな MySQL ステートメント構文の使用法とユーザー権限に関する知識を...
ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下...
背景先週、会社で MySQL レプリケーションのトレーニングを受けたので、今週末は学んだことを実践す...
バージョンアップデートにより、元のユーザーのパスワードフィールドがauthentication_st...
問題は次のとおりです。mysql -uroot -p コマンドを入力しましたが、パスワードを忘れてし...
基礎リレーショナル データベースでは、各データ テーブルはファイルに相当し、異なるストレージ エンジ...
IEでのRGBAとフィルター値の変換RGBA 透明度値IE フィルター値0.1 19 0.2 33 ...
ドラッグ アンド ドロップ API は、ドラッグ可能な要素を HTML に追加し、ドラッグ可能な豊富...
モバイル デバイスでは、金額を表示するために円形の波グラフィックがよく使用されます。最初は、この効果...
今日、私は公開用の動的なウィンドウ スタイルを設計しましたが、マウスで入力をクリックしたときにブラウ...
で+ 時間 17:23に at> touch /mnt/file{1..9} ##アクションを...
InnoDB ストレージ エンジンの主な機能には、挿入バッファ、二重書き込み、適応ハッシュインデック...
Vue2.0/3.0双方向データバインディングの実装原理双方向データバインディングとは、データの変更...