React教程

React组件API

ReactJS组件是顶级API。它使代码完全独立且可在应用程序中重用。它包括用于以下目的的各种方法:
创建元素 转换元素 片段
在这里,我们将解释React组件API中可用的三种最重要的方法。
setState() forceUpdate() findDOMNode()

setState()

此方法用于更新组件的状态。此方法并不总是立即替换状态。相反,它只会将更改添加到原始状态。这是用于响应事件处理程序和服务器响应而更新用户界面(UI)的主要方法。
注意: 在ES6类中,this.method.bind(this)用于手动绑定setState()方法。

语法

this.stateState(object newState[, function callback]);
在上述语法中,有一个可选的回调函数,该函数将在setState()完成并重新呈现该组件后执行。

示例

import React, { Component } from 'react';
import PropTypes from 'prop-types';
class App extends React.Component {
   constructor() {
      super();    
      this.state = {
          msg: "Welcome to lidihuo"
      };  
      this.updateSetState = this.updateSetState.bind(this);
   }
   updateSetState() {
       this.setState({
          msg:"Its a best ReactJS tutorial"
       });
   }
   render() {
      return (
         <div>
             <h1>{this.state.msg}</h1>
             <button onClick = {this.updateSetState}>SET STATE</button>
         </div>
      );
   }
}
export default App;
Main.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.js';
ReactDOM.render(<App/>, document.getElementById('app'));
当您单击设置状态按钮,您将看到以下屏幕,其中包含更新的消息。
React Component API

forceUpdate()

此方法允许我们手动更新组件。

语法

Component.forceUpdate(callback);

示例

App.js
import React, { Component } from 'react';
class App extends React.Component {
   constructor() {
      super();      
      this.forceUpdateState = this.forceUpdateState.bind(this);
   }
   forceUpdateState() {
      this.forceUpdate();
   };
   render() {
      return (
         <div>
             <h1>Example to generate random number</h1>
             <h3>Random number: {Math.random()}</h3>
             <button onClick = {this.forceUpdateState}>ForceUpdate</button>
         </div>
      );
   }
}
export default App;
输出:
React组件API
每次当您单击 ForceUpdate 按钮时,它将生成随机号。可以在下图中显示。
React组件API

findDOMNode()

对于DOM操作,您需要使用 ReactDOM.findDOMNode()方法。这种方法使我们能够找到或访问底层的DOM节点。

语法

ReactDOM.findDOMNode(component);

示例

对于DOM操作,首先,您需要导入以下行: react-dom 中的 import ReactDOM >"在您的 App.js 文件中。
App.js
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
class App extends React.Component {
   constructor() {
      super();
      this.findDomNodeHandler1 = this.findDomNodeHandler1.bind(this);
      this.findDomNodeHandler2 = this.findDomNodeHandler2.bind(this);
   };
   findDomNodeHandler1() {
       var myDiv = document.getElementById('myDivOne');
       ReactDOM.findDOMNode(myDivOne).style.color = 'red';
   }
   findDomNodeHandler2() {
       var myDiv = document.getElementById('myDivTwo');
       ReactDOM.findDOMNode(myDivTwo).style.color = 'blue';
   }
   render() {
      return (
         <div>
             <h1>ReactJS Find DOM Node Example</h1>
             <button onClick = {this.findDomNodeHandler1}>FIND_DOM_NODE1</button>
             <button onClick = {this.findDomNodeHandler2}>FIND_DOM_NODE2</button>
             <h3 id = "myDivOne">JTP-NODE1</h3>
             <h3 id = "myDivTwo">JTP-NODE2</h3>
         </div>
      );
   }
}
export default App;
输出:
React组件API
一旦您点击按钮,该节点的颜色就会更改。可以在下面的屏幕中显示。
React组件API
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4