React constructor 和 getInitialState 的区别?

发布于 2023-10-28 13:12:03 字数 1485 浏览 32 评论 0

关键词:react constructor 作用、react getInitialState 作用、初始化 state

在 React 中,constructor 是一个类的构造函数,用于初始化类的成员变量和方法,这个函数不仅会在组件实例化时调用,还会在后续的组件更新时调用。而 getInitialState 是一个组件的声明周期函数,用于初始化组件的状态,该函数只会在组件实例化时调用一次,后续的更新不会再调用。

具体来说,constructor 用于初始化类成员变量和方法,如下面的示例代码所示:

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      count: 0
    };
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    this.setState({ count: this.state.count + 1 });
  }

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={this.handleClick}>Click me</button>
      </div>
    );
  }
}

在上面的代码中,constructor 用于初始化组件的状态 count 和绑定 handleClick 方法的 this 指向。每次组件更新时,constructor 函数都会被调用。

而 getInitialState 则是用于初始化组件的状态,如下面的示例代码所示:

class MyComponent extends React.Component {
  getInitialState() {
    return {
      count: 0
    };
  }

  handleClick() {
    this.setState({ count: this.state.count + 1 });
  }

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={this.handleClick}>Click me</button>
      </div>
    );
  }
}

在上面的代码中,getInitialState 用于初始化组件的状态 count,该函数只会在组件实例化时调用一次。后续的更新不会再调用。需要注意的是,在 React 16.3 之后,getInitialState 已经不再被支持,需要使用 constructor 来初始化 state。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

终难遇

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文