デモコマンドをカスタマイズする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を構築する手順
序文:インストール プロセスについては詳しく説明しません。問題に直接触れましょう。MySQL のリモ...
目次序文解決具体的な実装満たすべき前提条件質問序文テーブルをよく使用します。データ量が多い場合は直接...
目次1. 応答原理の基盤2. コアオブジェクト: Dep と Watcher 3. 依存関係を収集し...
目次1. 解体のヒント2. デジタルセパレーター3. try...catch...finally が...
ケース1: 最後の提出とプッシュなし次のコマンドを実行します。 git コミット --amend g...
このチュートリアルでは、参考までにMySQL 8.0.19のインストールチュートリアルを共有します。...
1. はじめに以前は、Python アプリケーションの作成を開始したい場合、最初のステップはマシンに...
目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...
フロントエンドテストページコード: <テンプレート> <div> <i...
目次Reactにaxios依存関係をインストールして導入するGETリクエストにaxiosを使用するa...
目次1 バージョンと計画1.1 バージョン情報: 1.2 クラスター計画2. 展開1. ファイアウォ...
1. 準備LinuxシステムにTomcatをインストールし、デフォルトのポート8080を使用してTo...
TypeScript バンドルwebpack 統合通常、実際の開発では、ビルド ツールを使用してコー...
序文MySQL では、Innodb と MyIsam の両方がインデックス構造として B+ ツリーを...
目次.vue ファイルの解析文書情報を抽出するコンポーネント名、説明、プロパティ、メソッド、モデルを...