Home  >  Article  >  Web Front-end  >  How vue.js implements data pull and update through custom instructions

How vue.js implements data pull and update through custom instructions

高洛峰
高洛峰Original
2017-01-12 13:38:431466browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn