加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:06:22 所属栏目:百科 来源:网络整理
导读:前言 这篇文章的代码片段位于 vue 的单文件组件中,即以 .vue 结尾的文件中,本文说明的只是一种实现方法,既不是唯一的方法也不是最好的方法,如果大家有更好的方法可以留言,大家进行讨论。 第一步 首先,一定要先定义变量: 第三步 接着使用自定义指令,

前言

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

第一步

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

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

第二步

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

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

第三步

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

组件实例化后会立即以初始值 ifUpdate 为参数第一次调用自定义指令 initData 的方法,之后每次参数值 ifUpdate 变化时会再次调用 initData 的函数,参数为 ifUpdate 的新值与旧值。

// 在页面节点(自由选择)中绑定自定义指令

// 定义自定义指令
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能有所帮助,如果有疑问大家可以留言交流。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读