React 生命周期 表单元素处理 ref属性 性能优化 HOC高阶组件

本文详细介绍了React组件的生命周期,包括挂载期、更新期和销毁期的各个阶段及其对应的钩子函数。此外,还讨论了表单元素处理,如受控组件和非受控组件的概念,以及ref属性的使用。在性能优化方面,提到了减少DOM操作、使用React.Fragment、React.memo、纯组件以及错误边界的策略。最后,解释了HOC高阶组件的原理和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生命周期

生命周期:指对象从创建,到销毁的过程,就是一个生命周期 钩子函数:在某时某刻自动被调用的函数就是钩子函数

  • 挂载期

    //构造函数. 作用: 在初始化时做state 数据的赋值工作
    constructor(props){
        super(props)
        console.log('==constructor==');
        // console.log(this.props);
        this.state = {
            name:'贾玲'
        }
    }
    //从props中获取stats数据
    static getDerivedStateFromProps(props,state){
        console.log('==getDerivedStateFromProps==');
        // 必须return 一个对象或者null
        console.log(props);
        console.log(state);
        return state
    }
    //作用:做jsx模板的解析,
    render() {
        console.log('==render==');
        //报错
        // console.log(document.querySelector('h1').innerHTML);
    ​
        const {age} = this.props
        return (
            <div className="alert alert-info">
                <h1>生命周期</h1>
                <div>age:{age}</div>
            </div>
        )
    }
     //作用: 定时器 延时器 轮播图 等等各种请求
    componentDidMount(){
        console.log('==componentDidMount==');
        console.log(document.querySelector('h1').innerHTML);=
    }
  • 更新期:当props或着state的数据发生改变的时候,处于更新期

    // getDerivedStateFromProps
    //应该更新组件吗?
    /**
     * 必须return一个结果 如果是true,表示更新数据  如果是false表示不更数据
     * 应用:在实际开发中,有一些特殊的业务逻辑在更新完数据之后不希望用户看到,这是该钩子函数就可以实现
    */
    shouldComponentUpdate(){
        console.log('==shouldComponentUpdate==');
        return true
    }
    // render...
    // 组件更新完成
    componentDidUpdate(prevProps,prevState){
        console.log('==componentDidUpdate==');
        //获取的是更新之前的props
        console.log(prevProps);
        // 获取更新之前的state
        console.log(prevState);
    }

  + 销毁期

  ``` js
   //销毁期
   componentWillUnmount(){
       console.log('==componentWillUnmount==');
   }

表单元素处理

在react中没有提供表单的数据双向绑定,在html中input text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值