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


Posted in Javascript onOctober 18, 2016

前言

这篇文章的代码片段位于 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能有所帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
IE和firefox浏览器的event事件兼容性汇总
Dec 06 Javascript
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
Sep 28 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
May 25 Javascript
BootStrap Table对前台页面表格的支持实例讲解
Dec 22 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
Jan 31 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
Apr 13 Javascript
微信小程序网络封装(简单高效)
Aug 06 Javascript
vue.js实现的幻灯片功能示例
Jan 18 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
Sep 16 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
微信小程序 教程之WXML
Oct 18 #Javascript
原生JS实现匀速图片轮播动画
Oct 18 #Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 #Javascript
原生js实现网易轮播图效果
Apr 10 #Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 #Javascript
JSON对象 详解及实例代码
Oct 18 #Javascript
简易的JS计算器实现代码
Oct 18 #Javascript
You might like
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
phpsir 开发 一个检测百度关键字网站排名的python 程序
2009/09/17 Python
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python编程中的反模式实例分析
2014/12/08 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
python把一个字符串切开的实例方法
2020/09/27 Python
Why do we need Unit test
2013/01/03 面试题
技术人员面试提纲
2013/11/28 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
银行开业庆典方案
2014/02/06 职场文书
情人节活动策划方案
2014/02/27 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
承租经营合作者协议书
2014/10/01 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
python自动计算图像数据集的RGB均值
2021/06/18 Python
Python之基础函数案例详解
2021/08/30 Python
MySQL笔记 —SQL运算符
2022/01/18 MySQL
Elasticsearch 数据类型及管理
2022/04/19 Python