当前位置: 首页 > 工具软件 > memo > 使用案例 >

高阶组件memo

程俊力
2023-12-01

父组件的 render 重新执行时,函数子组件的 render 函数也会调用。可以使用 memo 包裹一层。

问题代码:

父组件
import React from "react"
import ChildCpn from "./cpn.js"
class App extends React.Component {
  state = {
    age: 18
  }
  add = () => {
    this.setState({
      age: this.state.age + 1
    })
  }
  render() {
    return (
      <div>
        <span>显示值:{this.state.age}</span>
        <button onClick={this.add}>点击</button>
        <ChildCpn />
      </div>
    )
  }
}
export default App


子组件
import React from "react"
function ChildCpn() {
    console.log("子组件调用")
    return <div>子组件</div>
}
export default ChildCpn

父组件的值修改的时候,都会重新渲染子组件的 dom 树。

使用 memo,将函数组件放在 memo() 中,返回值是一个组件。

import React, { memo } from "react"
let ChildCpn = memo(
    function () {
        console.log("子组件调用")
        return <div>子组件</div>
    }
)
export default ChildCpn
 类似资料: