个性化阅读
专注于IT技术分析

React组件API用法全解 – ReactJS实战教程

上一章ReactJS实战教程请查看:React构造函数constructor用法详解

ReactJS组件component是一个顶级API,它使代码在应用程序中完全独立和可重用,它包括各种方法:

  • 创建元素
  • 更改元素
  • 片段Fragment

在这里,我们将解释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 srcmini"  
      };      
      this.updateSetState = this.updateSetState.bind(this);  
   }  
   updateSetState() {  
       this.setState({  
          msg:"ReactJS实战教程"  
       });  
   }  
   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'));  

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>生成随机数的例子</h1>  
             <h3>随机数: {Math.random()}</h3>  
             <button onClick = {this.forceUpdateState}>ForceUpdate</button>  
         </div>  
      );  
   }  
}  
export default App;  

findDOMNode ()

对于DOM操作,需要使用ReactDOM.findDOMNode()方法,此方法允许我们查找或访问底层DOM节点。

语法

ReactDOM.findDOMNode(component);  

例子

对于DOM操作,首先需要导入这一行:从你的App.js文件中的’react-dom’导入ReactDOM。

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查找DOM节点例子</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;  
赞(0)
未经允许不得转载:srcmini » React组件API用法全解 – ReactJS实战教程

评论 抢沙发

评论前必须登录!