您的位置:首页 > Web前端 > Vue.js

vue.js通过自定义指令实现数据拉取更新的实现方法

2016-10-18 00:00 1381 查看
前言

这篇文章的代码片段位于 vue 的单文件组件中,即以 .vue 结尾的文件中,本文说明的只是一种实现方法,既不是唯一的方法也不是最好的方法,如果大家有更好的方法可以留言,大家进行讨论。

第一步

首先,一定要先定义变量:

// app.vue <script>

data () {
return {
// 定义 getData
getData:{},
// 定义自定义指令的绑定值
ifUpdate:true
}
}


第二步

然后要使用 ajax的话,要在 index.html 里引入 jquery,这样就可以全局使用了:

// index.html

<script type="text/javascript" src="./lib/js/jquery-2.1.1.min.js"></script>


第三步

接着使用自定义指令,在组件实例化后,会自动执行自定义指令里的方法:

组件实例化后会立即以初始值
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每天必学之指令系统与自定义指令
利用Vue.js指令实现全选功能
Vue.js每天必学之数据双向绑定
使用node+vue.js实现SPA应用
基于Vue.js的表格分页组件
JavaScript的Vue.js库入门学习教程
Vue.js每天必学之Class与样式绑定
Vue.js 父子组件通讯开发实例
使用vue.js开发时一些注意事项
Vue.js动态组件解析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vue.js 指令 数据 ajax
相关文章推荐