react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新

场景:数据新增成功之后,需要返回原来的查询表,这时候的查询,需要使用react的生命周期:componentDidUpdate

componentDidUpdate() 这个生命周期的作用是当props或state更新之后,使用它更新DOM节点。如果使用不当,则查询页面会不停的调用查询的方法,不停的执行刷新操作。因此,需要给新增的方法增加一个标志,通过这个标志,判断,如果新增成功,则调用一次查询方法,否则,则不调用。

这个标志,通常在 2 个位置使用:

1. action的 新增 方法中;
2. 查询组件的 this.state 与 componentDidUpdate() 中;

这两个标志,分别是:
addGroupResponseFlag                  //新增成功的标志
addResponseFlagHas:false           //新增成功后是否更新标志,默认为false

下面代码展示:

//action 方法,在return前使用let addGroupResponseFlag = httpUtils.httpResponseFlag(params);
  return{
      type: ADD_VERSION_GROUP,
         data: {
             params,
             //新增成功标志
             addGroupResponseFlag
         }
    }
//查询组件
constructor(props){
    super(props);
    this.state = {
  //新增完成之后是否更新标志,默认false
    addResponseFlagHas:false
    }

//页面更新数据之后需要调用这个生命周期componentDidUpdate
componentDidUpdate(){
  /**
  * 给获取数据的方法传参数,分页
  */
  let pageSize = this.state.pageSize;
  let pageNum = this.state.pageNum;
  /**
  * 这里使用的是ES6的对象解构赋值,api接收参数只有一个变量,这里的赋值,只是值{pageNum , pageSize},传的对象的值
  */
  let addGroupResponseFlag = this.props.versionGroupState.addGroupResponseFlag;
  let addResponseFlagHas = this.state.addResponseFlagHas;

  if(addGroupResponseFlag && !addResponseFlagHas){
      this.setState({
         addResponseFlagHas: true
  });

  /**
  * addGroupResponseFlag && !addResponseFlagHas 为 true 时,执行重新查询方法
  */
  this.props.searchAppVersionGroup({pageNum , pageSize});
  }

  /**
  * 如果有删除 或 修改 依次把判断方法写在下面
  */
}

如果有更好的方法,欢迎交流!

时间: 2024-10-11 16:00:39

react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新的相关文章

React js生命周期

文章来源:React:组件的生命周期 另来源于幕课网课程<React入门>

React组件生命周期小结

转载自:http://www.jianshu.com/p/4784216b8194 下面所写的,只适合前端的React.(React也支持后端渲染,而且和前端有点小区别,不过我没用过.) 相关函数 简单地说,React Component通过其定义的几个函数来控制组件在生命周期的各个阶段的动作. 在ES6中,一个React组件是用一个class来表示的(具体可以参考官方文档),如下: // 定义一个TodoList的React组件,通过继承React.Component来实现 class Tod

关于React的生命周期

React 的主要思想是通过构建可复用组件来构建用户界面.所谓组件其实就是 有限状态机,通过状态渲染对应的界面,且每个组件都有自己的生命周期,它规定了组件的状态和方法需要在哪个阶段进行改变和执行.有限状态机(FSM),表示有限个状态以及在这些状态之间的转移和动作等行为的模型.一般通过状态.事件.转换和动作来描述有限状态机.React 通过管理状态来实现对组件的管理. 虽然组件.状态机.生命周期这三者都不是 React 独创,如果熟悉 Web Components 标准,它与其中的自定义组件的生命

React—组件生命周期详解

React-组件生命周期详解 转自 明明的博客  http://blog.csdn.net/slandove/article/details/50748473 (非原创) 版权声明:转载请注明出处,欢迎加入QQ群(115402375)讨论!博客编写已经转移到http://blog.csdn.net/limm33 在组件的整个生命周期中,随着该组件的props或者state发生改变,它的DOM表现也将有相应的改变,一个组件就是一个状态机,对于特定的输入,它总会返回一致的输出. React为每个组件

react的生命周期

什么是声明周期?组件本质上就是状态机,输入确定,输出一定确定.如何理解这一点?react有两个特点,第一个就是去除了所有的手动dom操作,也就是使用jsx.第二个就是组件把状态和结果一一对应起来,从而能够直观的看出来,程序在不同的状态是的输出.属性是由父组件传递给子组件的,状态是子组件内部维护的一些数据,当状态发生变化时候,组件也会进行更新,因此我们可以理解成一个state对应一个render的结果,这样我们就可以知道在不同的state下,组件会render出什么样的结果,从而就知道组件在页面上

react学习---生命周期学习和refs

写react组件的时候,我们写的都是jsx文件,那jsx到页面渲染成功这个过程发生了什么呢? 首先通过react和babel编译将jsx转化为javascript对象,react-dom 负责把这个用来描述 UI 信息的 JavaScript 对象变成 DOM 元素,并且渲染到页面上. 生命周期 挂载阶段的 生命周期: componentWillMount   组件挂载开始之前,也就是render之前调用这个生命周期钩子 componentDidMount   组件挂载完成以后,也就是 DOM

Vue.js 生命周期

生命周期示意图: beforeCreate  --> Function 在实例初始化之后,数据观测(data observer)和event/watcher 事件配置之前调用 created  --> Function 实例已经创建完成之后被调用,在这一步,实例已经完成以下的配置: > 数据观测(data observer) > 属性和方法运算 > watch/event 事件回调 beforeMount  --> Function 在挂载开始之前被调用,相关的 ren

React组件生命周期过程说明【转】

实例化 首次实例化 getDefaultProps getInitialState componentWillMount render componentDidMount 实例化完成后的更新 getInitialState componentWillMount render componentDidMount 存在期 组件已存在时的状态改变 componentWillReceiveProps shouldComponentUpdate componentWillUpdate render com

【07】react 之 生命周期

阅读目录(Content) 实例化 getDefaultProps getInitialState componentWillMount render componentDidMount 存在期 componentWillReceiveProps shouldComponentUpdate componentWillUpdate componentDidUpdate 销毁时 componentWillUnmount 反模式 上篇博文使用React开发的一些注意要点对React开发的一些重点进行了