デモコマンドをカスタマイズする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を構築する手順
目次道具プラグインをインストールするプロジェクトのルートディレクトリに.postcssrc.jsファ...
現象Apache Spark 2.x を使用すると、Spark ジョブがすべて完了しているにもかかわ...
Vueカードのフリップカルーセル表示、フリップ時にデータを切り替えながら、参考までに、具体的な内容は...
序文<router-link> タグは、Vue アプリ内のさまざまなページ間を移動するた...
目次アポロ コンフィギュレーション センターとは何ですか?アポロの特徴クライアントアーキテクチャアー...
要約すると: Readonly は入力 (テキスト/パスワード) とテキスト領域に対してのみ有効です...
豊富なオプションを備えた強力なエディターとして、Vim は多くのユーザーに愛されています。この記事で...
中国語チュートリアルhttps://www.ncnynl.com/category/turtlebo...
MySQL-8.0.22-winx64のデータベースインストールチュートリアルは参考になります。具体...
MySQL(5.6以下)はjsonを解析します #json 解析関数 DELIMITER $$ `j...
JavaScriptでの検索二分木実装は参考までに。具体的な内容は以下のとおりです。バイナリ検索木 ...
目次概要コードの実装パラメータ定義成し遂げる責任連鎖パターンの実装改善概要責任チェーン パターンは、...
最近、ウェブサイトを https アクセスに変換したいのですが、すべて完了した後、Baidu Web...
最近、データライフサイクル管理の詳細を整理していたときに、小さな問題を発見しました。それは、MySQ...
目次1. v-text (v-instruction name = "variable&q...