在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ ReactJS組件
ReactJS動畫
ReactJS組件狀態(tài)(State)
ReactJS簡介
ReactJS開發(fā)環(huán)境設置
ReactJS Refs
ReactJS組件API
ReactJS高階組件
ReactJS組件
ReactJS props簡介
ReactJS教程
ReactJS組件生命周期
ReactJS鍵(Key)
ReactJS事件
ReactJS最佳實踐
ReactJS props驗證
ReactJS表單
ReactJS JSX
ReactJS路由器
ReactJS通量概念

ReactJS組件

在本章中,我們將學習如何組合組件以使應用程序更易于維護。 這種方法允許更新和更改組件,而不會影響頁面的其余部分。

無狀態(tài)示例

下例中的第一個組件是App。 此組件是標題和內(nèi)容的所有者。這里分別創(chuàng)建HeaderContent,并將其添加到App組件的JSX樹中。 只有App組件需要導出。

文件:App.jsx -

import React from 'react';

class App extends React.Component {
   render() {
      return (
         <div>
            <Header/>
            <Content/>
         </div>
      );
   }
}
class Header extends React.Component {
   render() {
      return (
         <div>
            <h1>Header</h1>
         </div>
      );
   }
}
class Content extends React.Component {
   render() {
      return (
         <div>
            <h2>Content</h2>
            <p>The content text ~ </p>
         </div>
      );
   }
}
export default App;

為了能夠在頁面上呈現(xiàn),需要將它導入main.js文件并調(diào)用reactDOM.render()。 在設置環(huán)境的時候就已經(jīng)這樣做了。

文件:main.js -

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';

ReactDOM.render(<App />, document.getElementById('app'));

上面的代碼將生成以下結(jié)果 -

有狀態(tài)的例子

在這個例子中,我們將設置所有者組件(App)的狀態(tài)。 Header組件就像上一個例子一樣添加,但它不需要任何狀態(tài)。這里創(chuàng)建tabletbody元素,而不是content標簽,在這里為數(shù)據(jù)數(shù)組中的每個對象動態(tài)插入TableRow
可以看出,我們使用的EcmaScript 2015箭頭語法(?)看起來比舊的JavaScript語法更清晰。 這將幫助我們用更少的代碼來創(chuàng)建元素。 當需要創(chuàng)建一個包含很多項目的列表的時候,它是非常有用的。

文件:App.jsx -

import React from 'react';

class App extends React.Component {
   constructor() {
      super();
      this.state = {
         data: 
         [
            {
               "id":1,
               "name":"Foo",
               "age":"20"
            },
            {
               "id":2,
               "name":"Bar",
               "age":"30"
            },
            {
               "id":3,
               "name":"Baz",
               "age":"40"
            }
         ]
      }
   }
   render() {
      return (
         <div>
            <Header/>
            <table>
               <tbody>
                  {this.state.data.map((person, i) => <TableRow key = {i} 
                     data = {person} />)}
               </tbody>
            </table>
         </div>
      );
   }
}
class Header extends React.Component {
   render() {
      return (
         <div>
            <h1>Header</h1>
         </div>
      );
   }
}
class TableRow extends React.Component {
   render() {
      return (
         <tr>
            <td>{this.props.data.id}</td>
            <td>{this.props.data.name}</td>
            <td>{this.props.data.age}</td>
         </tr>
      );
   }
}
export default App;

注意 - 注意我們在map()函數(shù)中使用key = {i}。 這將有助于React更新只有必要的元素,而不是在發(fā)生更改時重新呈現(xiàn)整個列表。 對于大量動態(tài)創(chuàng)建的元素來說,這是一個巨大的性能提升。得到以下結(jié)果 -


上一篇:ReactJS路由器下一篇:ReactJS組件API