react 优化的问题之PureComponent的使用

react 优化的问题之PureComponent的使用!

废话不多说,直接进入正题

PureComponent是什么?它是干啥的?用它的好处是啥?怎么用?

带着这个问题往下看

	1:先看父子组件
//这是父组件代码
import React,{ Component } from 'react'
import ChildBtn from "../btn/index"
class Home extends Component{
    constructor(props){
        super(props);
    }
    state = {
        num:0,
        child1:'add'
    }
    btnAdd = () => () => {
        let { num } = this.state;
        let newNum = num+=1;
        this.setState({
            num:newNum
        })
    }
    render(){
        let { num, child1 } = this.state;
        return(
            <div className = "box">
                <ChildBtn val = { child1 }></ChildBtn>
                <br/>
                <div>
                    {num}
                    <br/>
                    <br/>
                    <br/>
                    <button onClick = { this.btnAdd() }>点击</button>
                </div>

            </div>
        )
    }
}

export default Home
		在父组件中引入了一个叫ChildBtn这么一个子组件!每次点击的时候调用btnAdd这个函数方法!使state
中的num递加
//这是子组件
import React,{ Component } from "react";

export default class BtnChild extends Component{
    state = {
        child:"AAAAAAA"
    }
    componentDidMount(){
        console.log(this.state.child,"子组件渲染了----didMount", this.props)
    }
    render(){
        let { child } = this.state;
        console.log(child,"????????????????123123123.")
        return(
            <div>
                <div>
                    {child}
                </div>
            </div>
        )
      
    }
}
      这里的子组件就纯纯的一个展示的作用哈;可以忽略

要做的是点击父组件上的按钮;使数字递加;你会发现子组件什么都没动,但是父组件从新render的时候子组件会跟着重新渲染!

在这里插入图片描述
如果子组件大的话怎么办呢? 每次重新渲染多么的损耗性能?(难道非要使用shouldComponents去if判断props是否改变?费劲巴拉的)

就在这个时候, 天空一声巨响 PureComponent(15.3版本好像)闪亮登场!

使用方法简单的令人发指,只需要从react中解构出来就好了
看子组件
在这里插入图片描述

它是针对有状态组件的

下面看无状态组件可咋整?

//请看代码

function Child(){
    console.log("child 重新渲染了")
    return(
        <div>
            我是子组件
        </div>
    )
}

export default Child

在这里插入图片描述
一样的套路,

import React from 'react'

function Child(){
    console.log("child 重新渲染了")
    return(
        <div>
            我是子组件
        </div>
    )
}

export default React.memo(Child)
//    注意 React.memo方法接受俩参数 第一个参数是组件,第二个参数相当于条件吧,就是用于对比props,
//来决定是否从新渲染的!

我认为,这俩方法类似于对组件的props进行浅比较,来决定是否从新渲染的!如果有说的不对的地方,烦请指正,咱们互相学习!共同进步!

内容概要:本文详细探讨了基于樽海鞘算法(SSA)优化的极限学习机(ELM)在回归预测任务中的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方法,尽管其训练时间较长,但在实际应用中仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方法的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文中提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值