美文网首页
react 中 class 和 createClass的区别

react 中 class 和 createClass的区别

作者: 泉泉泉泉泉泉 | 来源:发表于2019-06-19 22:25 被阅读0次

class 是ES6中的写法,如果想要创建组件却不使用ES6,那就使用(ES5)createClass。

前者组件的初始化在constructor中,而后者没有constructor,但额外提供了一个getInitialState方法,用于初始化state,使用createClass需要先安装:npm install --save create-react-class

使用:

var Counter = createClass({
    getInitialState:function(){
        console.log( ' getInitialState');
        return {
            k:123
        }
    },
    componentWillMount:function() {
        console.log( ' componentWillMount');
        console.log(this.state)
    },
    render: function() {
        return <div>{999}</div>;
    }
})

区别比较:

class Counter2 extends React.Component{
    render(){
        return <div>{this.props.k}</div>;
    }
}
Counter2.defaultProps = {
    k:123
};

var Counter = createClass({
    getDefaultProps:function(){
        return {
            k:123
        }
    },
    render: function() {
        return <div>{this.props.k}</div>;
    }
});

相关文章

网友评论

      本文标题:react 中 class 和 createClass的区别

      本文链接:https://www.haomeiwen.com/subject/bcnlqctx.html