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 相关文章推荐
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
通过location.replace禁止浏览器后退防止重复提交
Sep 04 Javascript
基于jQuery实现的菜单切换效果
Oct 16 Javascript
深入理解js中this的用法
May 28 Javascript
javascript 作用于作用域链的详解
Sep 27 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
Dec 19 Javascript
关于TypeScript模块导入的那些事
Jun 12 Javascript
vue 左滑删除功能的示例代码
Jan 28 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
Jul 26 Javascript
微信小程序 如何保持登录状态
Aug 16 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
Mar 07 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 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 柱状图实现代码
2009/12/04 PHP
php数组去重实例及分析
2013/11/26 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
小程序云开发实战小结
2018/10/25 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Python实现手绘图效果实例分享
2020/07/22 Python
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
岗位职责范本
2013/11/23 职场文书
高中生的自我评价
2014/03/04 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
工作评语大全
2014/04/26 职场文书
课外活动实习计划
2015/01/19 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
小学美术教学反思
2016/02/17 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript