vue实现在进行增删改操作后刷新页面


Posted in Javascript onAugust 05, 2020

问题

通常在后台管理项目中,对数据进行增删改查是常规操作。在进行这些操作后,需要手动刷新才能更新列表。本文主要讨论进行增删改查相关操作后如何使当前页面显示操作后的最新数据。

解决方案 || 以删除为例:

1.强制刷新:this.$forceUpdate()

2.使用window.reload( ) 或 router.go(0),但会使整个浏览器进行重载,页面闪烁。

3.重新调用接口:但性能较差,代码冗长。

vue实现在进行增删改操作后刷新页面

vue实现在进行增删改操作后刷新页面

4.provide / inject :(推荐)

点此查看VUE官方解释:

允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在其上下游关系成立的时间里始终生效。

首先在App.vue全局设置provide

vue实现在进行增删改操作后刷新页面

在需要刷新的操作页面内注入inject:[‘reload']

vue实现在进行增删改操作后刷新页面

在调用接口操作成功后 this.reload( )

比如在删除接口调用成功后:

vue实现在进行增删改操作后刷新页面

划重点

provide:一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。

inject:一个字符串数组,或一个对象,对象的 key 是本地的绑定名。

$nextTick(点击查看vue相关文档)

除此之外,provide和inject的用法主要是:在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。

需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。

补充知识:vue主动刷新页面及列表数据删除后的刷新方法

1.场景

在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。

2.遇到的问题

1. 用vue-router重新路由到当前页面,页面是不进行刷新的

2.采用window.reload(),或者router.go(0)刷新时,整个浏览器进行了重新加载,闪烁,体验不好

3.解决方法

provide / inject 组合

作用:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。

App.vue:

声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载

vue实现在进行增删改操作后刷新页面

tableList.vue:

在页面注入App.vue组件提供(provide)的 reload 依赖,在逻辑完成之后(删除或添加...),直接this.reload()调用,即可刷新当前页面。

vue实现在进行增删改操作后刷新页面

4.provide / inject 用法

provide:选项应该是一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。

inject:一个字符串数组,或一个对象,对象的 key 是本地的绑定名

提示:provide 和 inject 绑定并不是可响应的。这是刻意为之的。如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。

深入理解数据驱动

以上算是开发过程中的一个坑,用了一段时间,今天再读代码的时候,感觉被坑的很严重。

1. 获取列表方法

vue实现在进行增删改操作后刷新页面

2.重新获取数据

vue实现在进行增删改操作后刷新页面

3.这样再次调用获取数据,即可同步实现页面数据更新(不会重新刷新页面),同时保证有分页时,能够停留在当前页(刷新前如果是第二页,刷新后依然在第二页),

即其他查询条件保持不变,体验效果好!

以上这篇vue实现在进行增删改操作后刷新页面就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
jquery 列表双向选择器之改进版
Aug 09 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
JS禁用浏览器退格键实现思路及代码
Oct 29 Javascript
js获得页面的高度和宽度的方法
Feb 23 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
Oct 30 Javascript
无刷新上传文件并返回自定义值
Jun 11 Javascript
JavaScript常用数组算法小结
Feb 13 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
Dec 19 Javascript
JS实现读取xml内容并输出到div中的方法示例
Apr 19 Javascript
微信小程序 scroll-view 实现锚点跳转功能
Dec 12 Javascript
vue 限制input只能输入正数的操作
Aug 05 #Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 #Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 #Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
Aug 05 #Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 #Javascript
js实现简单选项卡制作
Aug 05 #Javascript
vue 内联样式style中的background用法说明
Aug 05 #Javascript
You might like
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
365 Tickets英国:全球景点门票
2019/07/06 全球购物
财务会计人员岗位职责
2013/11/30 职场文书
如何写一份好的英文求职信
2014/03/19 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
工商局个人工作总结
2015/03/03 职场文书
2016春节慰问信范文
2015/03/25 职场文书
仙境之桥观后感
2015/06/16 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
Python Flask实现进度条
2022/05/11 Python