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 相关文章推荐
javascript 表单的友好用户体现
Jan 07 Javascript
JS中Iframe之间传值的方法
Mar 11 Javascript
javascript ie6兼容position:fixed实现思路
Apr 01 Javascript
js控制iframe的高度/宽度让其自适应内容
Apr 09 Javascript
transport.js和jquery冲突问题的解决方法
Feb 10 Javascript
JavaScript面对国际化编程时的一些建议
Jun 24 Javascript
jQuery实现下滑菜单导航效果代码
Aug 25 Javascript
javascript实现网站加入收藏功能
Dec 16 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
Feb 20 Javascript
jQuery时间验证和转换为标准格式的时间格式
Mar 06 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 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
php SQL防注入代码集合
2008/04/25 PHP
坏狼php学习 计数器实例代码
2008/06/15 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
PHP实现搜索相似图片
2015/09/22 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
深入浅析Python中的迭代器
2019/06/04 Python
Python 使用多属性来进行排序
2019/09/01 Python
python实现画出e指数函数的图像
2019/11/21 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Servlet的生命周期
2013/08/25 面试题
工艺工程师工作职责
2013/11/23 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
党员民主生活会材料
2014/12/15 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
匿名检举信范文
2015/03/02 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
golang中的struct操作
2021/11/11 Golang