react
小玲子小玲子
不忘初心
展开
-
react性能优化(持续更新)
1.react性能消耗主要在diff算法过程,所以性能优化主要在于减少不必要的diff算法1.1减少非批更新阶段(setTimeout,setInterval,promise回调)中setState的调用次数,如在回调的最后统一执行setState补充: 非批更新阶段:setTimeout,setInterval,promise回调,原生dom通过addEventListener绑定的事件中1.2通过componentShouldUpdate减少不必要的更新(每次state或props更新都会触发组件原创 2021-11-05 09:39:14 · 217 阅读 · 0 评论 -
react实现不同用户角色可访问不同的页面(路由权限管理)
需求:可制定不同的角色以及对应角色可以访问的页面实现:1.登录后根据用户角色字段获取该角色能够访问的页面路径2.将能够访问的路径存储到全局(这里用的是localstorage)3.在涉及权限的路由下使用自定义路由组件PrivateRoute代替Route(关于某一菜单/路径是否是需要权限的页面,可以在配置菜单数组的时候新增一个字段,值为true/false对应是否需要权限)import React from "react";import { Route } from "react-router-dom原创 2021-10-16 19:28:15 · 3331 阅读 · 0 评论 -
antd Table表格分页数据为动态获取时,切换页码后保留之前页面选中数据状态的实现,以及数据刷新后选中状态仍保留问题的解决
问题:antd Table提供了数据行可选择的操作,但是如果分页数据是从后端获取,切换页码后之前的分页数据就没有了,回到之前的页面选中状态也无法保留。解决:这里对ant Table表格组件进行了封装,实现了在分页数据动态获取时切换页码其他页选中的数据和状态仍保留的功能思路:1.定义curPageSelectedRowKeys存储当前页选中数据的key值数组,selectedRows存储所有选中数据2.监听当前页数据选中/取消选中和全选/取消全选操作,更新curPageSelectedRowKey原创 2021-09-08 23:11:23 · 6309 阅读 · 0 评论 -
react 使用stateHook如何在state字段更新后执行副作用(Effect Hook)
场景:在更新了state中的字段A后需要调用一个更新数据的方法getData,此方法需要使用字段A的值,如何保证getData方法拿到的A是最新的。如果不使用Hook,则可以1.使用this.setState()传递两个参数,一是更新state的对象或者函数,二是state设置生效后需要执行的副作用。2.在生命周期componentDidUpdate中监听A字段的变化this.setState( { A:'newData' }, ()原创 2021-08-08 17:37:05 · 1895 阅读 · 0 评论 -
antd表格切换分页页码时之前的选择项仍然保留问题解决
问题:使用antd table的分页和选择功能时,切换了分页,选中状态仍然保留在第一页选中前三条数据切换到第二页后前三条也被选中,但打印selectedRowKeys为[0,1,2]选中的只有3条数据解决:为每条数据加上key字段(如果本来就存在key字段且值唯一,则无需再单独添加):...原创 2021-08-07 12:20:55 · 2696 阅读 · 4 评论 -
react路由react-router-dom路由跳转传参设置state无效,接收时state为undefined问题分析
最近的一个需求:需要从A路由页面("/view/personal/user")携带一数组对象到B路由页面("/view/sysMng/user"),从而设置B页面的初始值。最初想到的方法就是通过路由传参在A页面路由跳转时将数据放入state中,然后在B页面的componentDidMount生命周期函数中通过props.location.state接收//A页面执行editRole方法进行路由跳转并携带state数据 private editRole = row => { this.pr原创 2021-06-30 00:14:10 · 4539 阅读 · 2 评论 -
react入门记录:关于react的一些注意点
1.组件名的首字母必须为大写字母:否则无法正常渲染,控制台报错2.不能为一个标签定义多个class属性,否则只有最后一个属性值会生效。实际结果:可以通过下面的方式添加多个class值:注意class1后面有个空格3.标签中的style值不能为字符串,必须为对象结果:浏览器报错可以使用下面两种方式定义style的内容4.组件中标签绑定state、props的值或者类组件中其他方法,需要使用this. 来调用,且要用{}括起来注意虽然这里再在render中传入了一个props但是原创 2020-12-28 12:58:31 · 311 阅读 · 0 评论