基础
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="react.js"></script>
<script src="react-dom.js"></script>
<script src="browser.js"></script>
<script type="text/babel">
class Text extends React.Component{ //继承自 React.Component
constructor(...args){ //将参数收集起来
super(...args) //将所有参数继承并展开
}
render(){ //render方法是必须的
return <span>abcD</span>
}
}
window.onload = function(){
let oDiv = document.getElementById('div1')
ReactDOM.render( //渲染
<Text></Text>,
oDiv
)
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
this.props
class Item extends React.Component{
constructor(...args){
super(...args)
}
render(){
return <li>{this.props.str}</li> //通过this.props.str设置参数
}
}
window.onload = function(){
let oDiv = document.getElementById('div1')
ReactDOM.render(
<ul>
<Item str="123"></Item>
<Item str="456"></Item>
<Item str="789"></Item>
</ul>,
oDiv
)
}
组件加组件
class Item extends React.Component{
constructor(...args){
super(...args)
}
render(){
return <li>{this.props.str}</li>
}
}
class List extends React.Component{
constructor(...args){
super(...args)
}
render(){
let aItems = []
for(var i = 0; i < this.props.arr.length; i++){
aItems.push(<Item str={this.props.arr[i]}></Item>)
}
return <ul>{aItems}</ul>
}
}
window.onload = function(){
let oDiv = document.getElementById('div1')
ReactDOM.render(
<List arr={[0,1,2,3]}></List>,
oDiv
)
}
map优化
class Item extends React.Component{
constructor(...args){
super(...args)
}
render(){
return <li>{this.props.str}</li>
}
}
class List extends React.Component{
constructor(...args){
super(...args)
}
render(){
//let aItems = this.props.arr.map(a=><Item str={a}></Item>)
return <ul>{this.props.arr.map(a=><Item str={a}></Item>)}</ul>
}
}
window.onload = function(){
let oDiv = document.getElementById('div1')
ReactDOM.render(
<List arr={[0,1,2,3]}></List>,
oDiv
)
}