Wie funktioniert der React-Schlüssel?
import React from 'react'
import ReactDOM from 'react-dom'
class App extends React.Component{
\t constructor(props) {
\t \t super(props)
\t \t this.state = {
\t \t \t list: [{id: 1,val: 'aa'}, {id: 2, val: 'bb'}, {id: 3, val: 'cc'}]
\t \t }
\t }
\t click() {
\t \t this.state.list.reverse()
\t \t this.setState({})
\t }
\t render() {
\t \t return (
<ul>
<div onClick={this.click.bind(this)}>reverse</div>
{
\t this.state.list.map(function(item, index) {
\t \t return (
<Li key={item.id} val={item.val}></Li>
\t \t)
\t }.bind(this))
}
</ul>
\t \t )
\t }
}
class Li extends React.Component{
\t constructor(props) {
\t \t super(props)
\t }
\t componentDidMount() {
\t \t console.log('===did===')
\t }
\t componentWillUpdate(nextProps, nextState) {
\t \t console.log('===mount====')
\t }
\t render() {
\t \t return (
<li>
{this.props.val}
<input type="text"></input>
</li>
\t \t )
\t }
}
ReactDOM.render(<App/>, document.getElementById('app'))
wenn ich Schlüssel als item.id
gesetzt, und ich stellte drei Eingangs-Tags a
, b
, c
;
wenn ich umkehren klicken, wird die Komponente Li montieren wird, wird Eingang umkehren
wenn ich Schlüssel als index
ändern, wenn ich umkehren klicken, um die Komponente Li aktualisieren und die Input-Tag wird sich nicht ändern,
Ich möchte wissen, wie es passiert? Hat jemand herausgefunden, wie der Schlüssel funktioniert?
Dank, ich verstehe, was du meinst – 2014