Preface
The code snippets of this article are located in the single-file component of vue, that is, in the file ending with .vue. This article explains only one implementation method, neither the only method nor the most effective method. Good method. If you have a better method, please leave a message and we can discuss it.
The first step
First of all, you must first define the variables:
// app.vue <script> data () { return { // 定义 getData getData:{}, // 定义自定义指令的绑定值 ifUpdate:true } }
The second step
Then if you want to use ajax, you need to introduce jquery in index.html so that it can be used globally:
// index.html <script type="text/javascript" src="./lib/js/jquery-2.1.1.min.js"></script>
The third step
Then use the custom instruction. After the component is instantiated, the method in the custom instruction will be automatically executed:
After the component is instantiated, the custom instruction will be called for the first time with the initial value ifUpdate as the parameter. The method of the instruction initData will call the function of initData again every time the parameter value ifUpdate changes. The parameters are the new value and the old value of 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; } }
Usage scenario description
After the user comments, refresh the comment list:
After obtaining the comment data for the first time, change ifUpdate to false
After the user adds a comment, the data is transmitted to the background, and ifUpdate becomes true
The command is triggered based on the change of ifUpdate, and the data is pulled from the background through ajax again
Reset ifUpdate to false after pulling .js can be helpful. If you have any questions, you can leave a message to communicate.
For more relevant articles on how vue.js implements data pull and update through custom instructions, please pay attention to the PHP Chinese website!