组件创建(Component)
1、函数式 组件
无状态组件,没有生命周期,只是一个返回react元素的函数
function demo(){
return <div>hello world!</div>
}
2、类 组件
它有state,以及不同的生命周期方法,类组件可能是无状态组件,也可能是有状态组件。也是开发过程中最常用的一种
class Demo extends React.Component {
//render函数并不做实际的渲染动作,他只是返回一个JSX
render() {
return <h1>Hello,world!</h1>;
}
}
3、React.createClass()
var Greeting = React.createClass({
render: function() {
return <h1>Hello, world!</h1>;
}
});
constructor()
在React中constructor表示父类的构造方法,用来新建父类的this对象,该方法是类中必须有的,如果没有显示定义,则会默认添加空的constructor( )方法。
class demo extends Component {
}
//等同于
class demo extends Component {
constructor(){}
}
super() 与 super(props)
子类 必须 在 constructor( )调用 super( )方法,否则新建实例时会报错,因为子类没有自己的this对象,而是继承父类的this对象,如果不调用super方法;子类就得不到this对象。
//super()
class demo extends Component {
constructor(){
super()
this.state={num:1}
}
}
//super(props)
class demo extends Component {
constructor(props){
super(props) //这里如果不写props会报错
this.state={num:this.props.num}
}
}
super()和super(props)的区别在于你是否需要在构造函数中使用this.props,如果需要那么你就必须要写props,如果不需要,那么写不写效果是一样的~
网友评论