已解决
React整理总结(三)
来自网友在路上 157857提问 提问时间:2023-11-20 00:37:01阅读次数: 57
最佳答案 问答题库578位专家为你答疑解惑
1.props和state的更新
- 父组件重新render时,所有的子组件也会调用render()函数。shouldComponentUpdate(nextProp, nextState)
shouldComponentUpdate(nextProps, nextState) {if (equal(nextProps, this.props) && equal(nextState, this.state)){return false} else {return true;}
}
- PureComponent。只是对props和state进行了浅层比较
- React.memo(),针对函数组件
2.ref获取原生DOM
- 字符串
this.refs.domRef | <div ref="domRef" />
- 创建ref
this.titleRef = React.createRef() | <div ref={this.titleRef} />
- 函数返回
<div ref={el => this.elRef = el} />
- ref可以直接获取类组件实例,
<MyComponent ref={this.comRef} />
- ref获取函数式组件,需要使用forwardRef.
const MyComponent = React.forwardRef(function (props, ref){
return <div ref={ref} />
})
3.高阶组价
- 高阶函数:接受函数作为参数或者返回值为函数
- 高阶组件(HOC):接受组件作为参数,并且返回新组件
增强props
配合context使用,传递state
登录鉴权
生命周期劫持
…
4. Portals与Fragment
createPortal(content, target)
将content内容挂载到target上
// html的body, 正常内容都是挂在root下
<div id="root"></div>
<div id="modal"></div>// Modal组件
import React, {PureComponent } from “react”;
import { createPortal } from 'react-dom';
export default class Modal extends PureComponent {constructor(props){super(props);}render(){return createPortal(this.props.children, document.querySelector("#modal")); }
}
- Fragment, 短语法
<></>
, 添加key时无法使用短语法
5. 严格模式StrictMode
- 识别不安全的生命周期
- 使用过时的ref APi
- 检查意外的副作用,constructor会被调用两次,生产模式不会
- 检查废弃的findDOMNode函数
- 检查过时的context api
查看全文
99%的人还看了
相似问题
- Tekton — 通过tekton-operator部署tekton组件
- vue3中使用全局自定义指令和组件自定义指令
- HarmonyOS ArkTS 基础组件的使用(四)
- 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(一)
- Vue2系列 -- 组件自动化全局注册(require.context)
- 扩散模型实战(十一):剖析Stable Diffusion Pipeline各个组件
- django DRF认证组件示例
- MySQL内部组件与日志详解
- 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第五章 Element-Plus组件库安装和使用
- 修改el-radio-group样式,自定义单选组件
猜你感兴趣
版权申明
本文"React整理总结(三)":http://eshow365.cn/6-39802-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!