React --双向数据绑定及列表数据循环
Posted juewuzhe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React --双向数据绑定及列表数据循环相关的知识,希望对你有一定的参考价值。
React双向数据绑定:model改变影响view,view改变反过来影响model
import React,{Component} from ‘react‘; class Todolist extends Component { constructor(props) { super(props); this.state = { username:"111" }; } inputChange=(e)=>{ this.setState({ username:e.target.value }) } setUsername=()=>{ this.setState({ username:‘李四‘ }) } render() { return ( <div> <h2>双休数据绑定</h2><input value={this.state.username} onChange={this.inputChange}/> <p> {this.state.username}</p> <button onClick={this.setUsername}>改变username的值</button> </div> ); } } export default Todolist;
使用 map 渲染列表数据
JSX 的表达式插入 {}
里面可以放任何数据
用户数据的 JSX 结构抽离成一个组件 User
,并且通过 props
把 user
数据作为组件的配置参数传进去;这样改写 Index
就非常清晰了,看一眼就知道负责渲染 users
列表,而用的组件是 User
const users = [
{ username: ‘Jerry‘, age: 21, gender: ‘male‘ },
{ username: ‘Tomy‘, age: 22, gender: ‘male‘ },
{ username: ‘Lily‘, age: 19, gender: ‘female‘ },
{ username: ‘Lucy‘, age: 20, gender: ‘female‘ }
]
class User extends Component {
render () {
const { user } = this.props
return (
<div>
<div>姓名:{user.username}</div>
<div>年龄:{user.age}</div>
<div>性别:{user.gender}</div>
<hr />
</div>
)
}
}
class Index extends Component {
render () {
return (
<div>
{users.map((user, i) => <User key={i} user={user} />)}</div>
)
}
}
ReactDOM.render(
<Index />,
document.getElementById(‘root‘)
)
以上是关于React --双向数据绑定及列表数据循环的主要内容,如果未能解决你的问题,请参考以下文章
import * as react from 'react' 与 import react from 'react' 有啥区别
“使用 JSX 时,React 必须在范围内”(react/react-in-jsx-scope 与 index.js 上的“window.React = React”)