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 相关文章推荐
DLL+ ActiveX控件+WEB页面调用例子
Aug 07 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
Sep 04 Javascript
jquery ajax 局部刷新小案例
Feb 08 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
Mar 04 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
Nov 06 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
表单元素值获取方式js及java方式的简单实例
Oct 15 Javascript
JavaScript中值类型和引用类型的区别
Feb 23 Javascript
JS控件bootstrap suggest plugin使用方法详解
Mar 25 Javascript
微信小程序实现打卡日历功能
Sep 21 Javascript
详解vue组件之间的通信
Aug 30 Javascript
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
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数据库备份还原类分享
2014/03/20 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
date.parse在IE和FF中的区别
2010/07/29 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
jsTree使用记录实例
2016/12/01 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
Python查询IP地址归属完整代码
2017/06/21 Python
Python实现购物车购物小程序
2018/04/18 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
python中比较两个列表的实例方法
2019/07/04 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
python同步两个文件夹下的内容
2019/08/29 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
python模块如何查看
2020/06/16 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
总经理助理的八要求
2013/11/12 职场文书
天网工程实施方案
2014/03/26 职场文书
社会发展项目建议书
2014/08/25 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
护士个人年度总结范文
2015/02/13 职场文书
校园广播站开场白
2015/06/01 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
GO中sync包自由控制并发示例详解
2022/08/05 Golang