デモコマンドをカスタマイズする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を構築する手順
この記事では、参考までに、簡単な計算機機能を実現するためのVueの具体的なコードを紹介します。具体的...
1. コマンド mysqld --skip-grant-tables を入力します (前提条件: m...
目次MySQL 8 の WITH クエリについて学ぶ1. 例3. 練習するMySQL 8 の WIT...
MySQLインストールチュートリアル、参考までに具体的な内容は次のとおりです。 1. ダウンロードY...
ハイパーリンクはインターネット全体を接続していると言っても過言ではありません。ハイパーリンクは、別の...
1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...
この記事では、CentOS 7.4 サーバーで時刻同期を構成する方法について説明します。ご参考までに...
著者: Guan Changlong は、Aikesheng の配送サービス部門の DBA です。主...
目次1. Dockerをインストールする2. コードを書く3. Dockerfileを書く4. 画像...
現在、DockerイメージのほとんどはDebianベースです # cat /etc/issue De...
序文多くのサイトが、ポイントやゴールドコインなど、情報のダウンロードに料金を請求していることは誰もが...
区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...
通常は、最初に Dockerfile ファイルを定義し、次に docker build コマンドを使...
問題の説明Ele.me UI のフレームワークでは、入力データは el-form であり、出力データ...
旧ライフサイクルと比較して 3つのフックが廃止され、2つの新しいフックが追加されましたReact16...