React 绑定属性, 绑定class 绑定style、引入图片和循环数组渲染数据
1、所有的模板要被一个根节点包含起来
2、模板元素不要加引号
3、{}绑定数据
4、绑定属性注意:
class 要变成 className
for 要变成 htmlFor
style属性和以前的写法有些不一样
<div color':'blue'}}>{this.state.title}</div>
<div color':this.state.color}}>{this.state.title}</div>
5、循环数据要加key
6、组件的构造函数中一定要注意 super
子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其进行加工。如果不调用super方法,子类就得不到this对象
constructor(props){
super(props); /*用于父子组件传值 固定写法*/
this.state={
userinfo:'张三'
}
}
7、组件名称首字母大写、组件类名称首字母大写
demo:
import React from 'react'; import '../assets/css/index.css'; /* react绑定属性注意: class要换成className for要换成 htmlFor style: <div color":'red'}}>我是一个红的的 div 行内样式</div> 其他的属性和以前写法是一样的 */ class Home extends React.Component{ // 子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其进行加工。如果不调用super方法,子类就得不到this对象 constructor(props){ super(props); //固定写法 this.state={ msg:'我是一个home组件', title:'我是一个title', color:'red', style:{ color:'red', fontSize:'40px' } } } render(){ return( <div> <h2>{this.state.msg}</h2> <div title="1111">我是一个div</div> <br /> <div title={this.state.title}>我是一个div</div> <br /> <div className='red'>我是一个红的的div---id</div> <br /> <div className={this.state.color}>我是一个红的的div 1111</div> <br /> <label htmlFor="name">姓名</label> <input /> <br /> <br /> <div color":'red'}}>我是一个红的的 div 行内样式</div> <br /> <br /> <div style={this.state.style}>我是一个红的的 div 行内样式</div> </div> ) } } export default Home;
import React from 'react'; import '../assets/css/index.css'; import logo from '../assets/images/1.jpg'; class News extends React.Component{ constructor(props){ super(props); this.state={ msg:'新闻', list:['11111111111','222222222222','3333333333333'], list2:[<h2 key='1'>我是一个h2</h2>,<h2 key='2'>我是一个h2</h2>], list3:[ {title:"新闻11111111"}, {title:"新闻22222"}, {title:"新闻33333333"}, {title:"新闻444444444"} ] } } render(){ let listResult=this.state.list.map(function(value,key){ return <li key={key}>{value}</li> }) return( <div className="news"> {this.state.msg} <img src={logo} /> <img src={require('../assets/images/1.jpg')} /> <img src="https://www.baidu.com/img/xinshouye_353af22a7f305e1fb6cfa259394dea9b.png" /> <hr/> {this.state.list2} <hr/> <ul> {listResult} </ul> <hr/> <ul> { this.state.list3.map(function(value,key){ return (<li key={key}>{value.title}</li>); }) } </ul> </div> ) } } export default News;
app.js引用组件运行、测试即可