鍍金池/ 教程/ HTML/ ReactJS鍵(Key)
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鍵(Key)

在使用動態(tài)創(chuàng)建的組件或用戶更改列表時,React鍵很有用。 設置鍵值將會保持組件在更改后的唯一標識。

使用鍵

這里將動態(tài)創(chuàng)建具有唯一索引(i)的內(nèi)容元素。 map函數(shù)將從數(shù)據(jù)數(shù)組中創(chuàng)建三個元素。 由于鍵值對于每個元素都是唯一的,因此把i作為每個創(chuàng)建元素的鍵。

文件:App.jsx -

import React from 'react';

class App extends React.Component {
   constructor() {
      super();

      this.state = {
         data:[
            {
               component: 'First...',
               id: 1
            },
            {
               component: 'Second...',
               id: 2
            },
            {
               component: 'Third...',
               id: 3
            }
         ]
      }
   }
   render() {
      return (
         <div>
            <div>
               {this.state.data.map((dynamicComponent, i) => <Content 
                  key = {i} componentData = {dynamicComponent}/>)}
            </div>
         </div>
      );
   }
}
class Content extends React.Component {
   render() {
      return (
         <div>
            <div>{this.props.componentData.component}</div>
            <div>{this.props.componentData.id}</div>
         </div>
      );
   }
}
export default App;

文件:main.js -

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

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

將得到每個元素的鍵值,如下所示 -

如果在將來添加或刪除一些元素或者改變動態(tài)創(chuàng)建元素的順序,React將使用鍵值來跟蹤每個元素。