📜  ReactJS UNSAFE_componentWillMount() 方法

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

ReactJS UNSAFE_componentWillMount() 方法

componentWillMount() 方法在我们的 React 组件被加载或挂载到DOM (文档对象模型)之前调用。它在React Life-cycle的挂载阶段被调用,即在render()之前。它用于通过同步执行 React 代码从组件外部获取数据,这会导致我们的组件首先以空数据呈现,因为此方法在我们的组件第一次呈现之前不返回任何内容。由于 fetch 调用是异步的,我们的组件不会等待此方法完成并继续呈现。

根据这个问题,在最新版本的 React 中已弃用 componentWillMount() 方法。建议使用componentDidMount() 方法代替它,但如果我们仍然想使用 componentWillMount() 我们可以通过将其称为UNSAFE_componentWillMount()来实现。根据 React 不建议使用这种方法,这就是为什么UNSAFE关键字放在开头是为了给所有 React 开发者一个温和的信息,让他们停止使用这种方法。这个方法可以用来在我们的 React 组件被挂载到 DOM 之前执行一个动作。

句法:

class App extends Component {

  UNSAFE_componentWillMount() {
  
    //action you want to execute
     
  }
}

创建反应应用程序:

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

npx create-react-app foldername

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

cd foldername

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

示例:在这个示例中,我们将构建一个应用程序,它会在我们的 React 组件加载到 DOM 之前发出警报消息。现在在 App.js 文件中写下以下代码。在这里,App 是我们编写代码的默认组件。

文件名:App.js

Javascript
import React from 'react';
class App extends React.Component {
 
  UNSAFE_componentWillMount() {
    // Performing an action
    alert(`Welcome to GeeksForGeeks portal`);
 
  }
 
  render() {
    return 

GeeksForGeeks

;   }   }     export default App;


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

npm start

输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出。

解释:在我们的组件被挂载到 DOM 之前,我们通过UNSAFE_componentWillMount() 方法收到一条警告消息,然后在渲染后我们的组件加载。这样,我们可以在组件加载之前执行任何操作。如您所见,当我们的组件加载时,控制台上还会出现一条警告消息,它清楚地告诉我们,不建议将这种方法用于我们上面已经讨论过的用途。