デモコマンドをカスタマイズする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を構築する手順
目次1. 配列誘導1. 文字列を配列に分割する2. コレクションとマップを新しい配列に変換する3. ...
ルートパラメータ、ルートナビゲーションガード: ページが戻ったときに検索結果を保持する需要シナリオ:...
各データベース内の各テーブルのサイズをカウントすることは、データ ガバナンスの最も単純な要件の 1 ...
上の記事で、SWFObject V1.5 の使い方の紹介は一旦終了です。これから、SWFObject...
この記事の例では、ログインインターフェース検証コードを実装するためのlayuiの具体的なコードを参考...
今日、jsp ページを書きました。<div style="margin:0 auto...
次のように: docker run -d -p 5000:23 -p 5001:22 --name ...
目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...
以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...
以下のように表示されます。 CSSコードコンテンツをクリップボードにコピー分割{境界線: 2px 固...
序文MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答...
この記事では、携帯電話認証コードログインを実装するためのVueの具体的なコードを参考までに共有します...
序文このコントロールを直接印刷すると下部に透かしが入りますが、公式 Web サイトから購入することで...
バイオニックデザインといえば、飛行機の発明、ドバイのブルジュ・アル・アラブ、平泳ぎなどを思い浮かべる...
MySQL の通常のソート、カスタム ソート、中国語のピンイン文字によるソート。実際の SQL を記...