前書き
この記事のコード スニペットは、vue の単一ファイル コンポーネント、つまり .vue で終わるファイルにあります。この記事では、唯一の方法でも最良の方法でもありません。もっと良い方法がある場合は、メッセージを残してください。それについて話し合います。
ステップ 1
まず、必ず変数を定義してください:
// app.vue <script> data () { return { // 定义 getData getData:{}, // 定义自定义指令的绑定值 ifUpdate:true } }
ステップ 2
次に、ajax を使用したい場合は、グローバルに使用できるように、index.html に jquery を導入する必要があります。 :
// index.html <script type="text/javascript" src="./lib/js/jquery-2.1.1.min.js"></script>
3 番目のステップ
次に、コンポーネントがインスタンス化された後、カスタム命令内のメソッドが自動的に実行されます。
コンポーネントがインスタンス化された後、初期値 ifUpdate が実行されます。カスタム命令 initData のメソッドが一度呼び出され、その後パラメータ値 ifUpdate が変更されるたびに initData 関数が再度呼び出されます。パラメータは ifUpdate の新しい値と古い値です。
// app.vue <template> // 在页面节点(自由选择)中绑定自定义指令 <div v-initData="ifUpdate" ></div>
// app.vue <script> // 定义自定义指令 directives:{ initData:function(val, oldVal){ if(!val){ return; } var self = this; $.getJSON( "ajax/test.json", function( data ) { self.vm.getData = data; }); // 下次 ifUpdate 值更新为 true 时就会再次使用上面的 ajax 去获取数据 self.vm.ifUpdate = false; } }
使用シナリオの説明
ユーザーがコメントした後、コメントリストを更新します:
初めてコメントデータを取得した後、ifUpdate を false に変更します
ユーザーがコメントを追加した後、データを転送しますバックグラウンドに戻し、ifUpdateをtrueに変更します
ifUpdateの変更に基づいてコマンドがトリガーされ、再びajaxを介してバックグラウンドからデータをプルします
プル後、ifUpdateをfalseにリセットします
概要
上記が内容全体ですこの記事の内容が皆さんにとって vue.js の学習や使用に役立つことを願っています。ご質問がある場合は、メッセージを残して連絡してください。
vue.js がカスタム命令を通じてデータのプルと更新を実装する方法に関する関連記事については、PHP 中国語 Web サイトに注目してください。