📜  React.js 构造函数() 方法

📅  最后修改于: 2022-05-13 01:56:51.295000             🧑  作者: Mango

React.js 构造函数() 方法

构造函数是当我们从该类创建对象时自动调用的方法。它可以管理初始初始化任务,例如默认某些对象属性或对传入的参数进行健全性测试。简单地说,构造函数是一种有助于创建对象的方法。

React 中的构造函数没有什么不同。这可以将事件处理程序连接到组件和/或初始化组件的本地状态。在组件被挂载之前,constructor()函数被触发,并且和 React 中的大多数东西一样,它有一些规则,你可以在使用它们时遵循它们。

  • 第 1 步:在使用 this.props 之前调用 super(props)

    由于构造函数的性质,无法直接访问this.props对象,这可能会导致错误。此构造函数将引发错误:

    constructor() {
     console.log(this.props);
    }

    相反,我们将 prop 的值从 constructor() 传递给 super()函数:

    constructor(props) {
     super(props);
     console.log(this.props);
    }

    当你调用 super()函数时,会调用父类的构造函数,在 React 的情况下是 React.Component。

  • 第 2 步:永远不要在 constructor() 中调用 setState()

    组件的构造函数是设置组件初始状态的理想场所。您必须直接设置初始状态,而不是像在类中的其他方法中那样使用 setState():

    constructor(props) {
     super(props);
    
     this.state = {
       name 'kapil',
       age: 22,
     };
    }

    唯一可以像这样直接分配本地状态的地方是构造函数。你应该依赖于我们组件内其他地方的 setState() 。

  • 第 3 步:避免将值从 this.props 分配给 this.state

    在构造函数中设置初始组件状态时,应尽量避免从属性中设置值。我们可以做到以下几点:

    constructor(props) {
     super(props);
    
     this.state = {
       name: props.name,
     };
    }

    以后将不允许您使用 setState() 更改属性。您可以通过命名 this.props.name 轻松地在代码中直接引用该属性,而不是将属性直接分配给状态。

  • 第 4 步:将事件全部绑定在一个地方

    我们可以轻松地在构造函数中绑定您的事件处理程序:

    constructor(props) {
     super(props);
    
     this.state = {
       // Sets that initial state
     };
    
     // Our event handlers
     this.onClick = this.onClick.bind(this);
     this.onKeyUp = this.onKeyUp.bind(this);
     // Rest Code
    }

创建反应应用程序:

  • 第 1 步:使用以下命令创建一个 React 应用程序。

    npx create-react-app foldername
  • 第 2 步:创建项目文件夹(即文件夹名称)后,使用以下命令移动到该文件夹。

    cd foldername

项目结构:它将如下所示。

示例:现在在App.js文件中写下以下代码。在这里,App 是我们编写代码的默认组件。以下示例涵盖构造函数演示。

App.js
import React, { Component } from 'react';
  
class App extends Component {
  
  constructor(props) {
  
    // Calling super class constructor
    super(props);
      
    // Creating state
    this.state = {
      data: 'My name is User'
    }
      
    // Binding event handler
    this.handleEvent = this.handleEvent.bind(this);
  }
  
  handleEvent() {
    console.log(this.props);
  }
  
  render() {
    return (
      
                 



               
    );   } }    export default App;


运行应用程序的步骤:从项目的根目录运行应用程序,使用以下命令

npm start

输出: