react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求

简介: 在React或Vue中,若需在更改用户所属组后更新页面所有数据但不刷新整个页面,可以通过改变路由出口的key值来实现。在用户切换组成功后,更新key值,这会触发React或Vue重新渲染路由出口下的所有组件,从而请求新的数据。这种方法避免了使用`window.location.reload()`导致的页面闪烁,提供了更流畅的用户体验。

首先我描述一下我的需求:

比如说我有一组和二组。一组的界面和二组的界面一样,就是数据不一样。当我从一组切换成为二组之后,全部的接口需要重新请求接口儿。但是我不想让整个页面刷新请求(window.location.reload()),而是切换组之后直接全部变成新的数据,这个怎么实现?

目前框架用的react,但是这个问题并不会因为使用框架不同,而解决方案不同,所以和框架没有关系。

我举个例子:
在这里插入图片描述
首先一个管理系统,我们首先会先登录,登陆之后,这个账号会有一个默认的所属组,然后不管切换那个路由,哪个菜单,请求的这些接口返回的数据都是这个组下面的数据,这个时候,我切换了所属组,比如我切换成了第八组,我需要页面上的数据都变成第八组中的数据,但是我不清楚你可能会在哪个页面中切换,这个页面有多少个组件呢,每个组件又是否嵌套其他组件,但是这些组件中的数据,请求数据的接口都需要重新请求一遍,因为我所属组变了,我要看切换组的数据,但是我不想使用window.location.reload,因为这样体验不好,会使屏幕闪一下,就是会白屏一下。我想切换完之后,数据立马变,就像是只走了axios,将最新的数组请求了过来,这个问题困扰了一晚上,越想越复杂。

解决方案:

于是睡了一觉,今天早上有了思路,针对于这样的问题,首先我们清楚的知道,页面是路由匹配之后产生的,所以在这个路由的时候,我切换了组,并且告诉了后端,我这个用户从这个组切换成了这个组,然后返回结果为成功的时候,我们才能使页面刷新,就是所谓的请求接口,将页面所有的接口从新走一遍。
这个时候,我们已经将问题扩大化,问题有了一个归纳,那就是将问题考虑的面光了,我们升级到了路由级别,这个时候我们会想到路由出口,对于react就是Route,而vue的话就是router-view这个路由总出口,我们需要考虑的变了,变成了再切换组成功之后,怎么使路由出口重新渲染一遍,这个时候我们熟悉react或者vue的话,我们可以很快的考虑到一个属性,那就是key,这就是终极解决方案,key!
因为vue或者react 会根据你当前这个key是否改变来判断是否需要重新渲染这个标签或者组件,key变化 整个路由出口的所有路由都会重新渲染,这也是为什么for中用key的原因了。所以我们切换成功之后,将路由出口的key属性进行替换,就说明,我们告诉框架,我们这个路由出口中的组件需要重新渲染,ok,成功解决问题。

目录
相关文章
|
2天前
|
前端开发
React页面跳转取消上一个页面的所有请求
React页面跳转时取消上一个页面的所有axios请求,通过axios拦截器设置cancelToken,并在页面跳转时调用cancel函数取消未完成的请求。
8 2
|
2天前
|
前端开发 JavaScript
React配合axios请求拦截校验session,403跳转至登陆页面
React中使用axios进行请求拦截,通过自定义事件监听和响应拦截实现403状态码时的自动登录页面跳转。
11 2
|
1天前
|
前端开发
react中使用Modal.confirm数据不更新的问题解决
文章讨论了在React中使用Ant Design的`Modal.confirm`时更新数据不生效的问题,并提供了解决方案。原因是React状态更新可能是异步的,导致Modal的内容更新后不会立即反映在UI上。解决办法是在状态更新后使用`useEffect`钩子来调用Modal实例的`update`方法,从而更新Modal的内容。
9 0
react中使用Modal.confirm数据不更新的问题解决
|
2天前
|
JavaScript 前端开发
react字符串转为dom标签,类似于Vue中的v-html
本文介绍了在React中将字符串转换为DOM标签的方法,类似于Vue中的`v-html`指令,通过使用`dangerouslySetInnerHTML`属性实现。
9 0
react字符串转为dom标签,类似于Vue中的v-html
|
1天前
|
缓存 前端开发 JavaScript
在react项目中实现按钮权限createContext && useContext
文章介绍了在React项目中如何使用`createContext`和`useContext`来实现按钮级别的权限控制。
5 0
|
2天前
|
前端开发
React使用hooks遇到的坑_state中的某几个属性数据变成了空字符
本文讨论了在React使用hooks时遇到的一个问题:state中的某些属性数据变成了空字符。作者通过在修改函数中重新解构赋值来获取最新的state值,解决了因数据更新不及时导致的问题。
8 0
|
1月前
|
前端开发 JavaScript UED
React 基础与实践 | 青训营笔记
React 基础与实践 | 青训营笔记
41 0
|
2月前
|
前端开发 JavaScript Java
React 速通笔记
【7月更文挑战第17天】
36 1
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
70 0
|
前端开发
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之8
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之7
47 0