react中,constructor和getInitialState的区别

本文对比了ES5与ES6语法下React组件的状态管理方式。ES6中通过class定义组件并直接设置this.state;而ES5则采用createClass方法,并需通过getInitialState方法初始化状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,ES6语法

使用class声明一个类,且要继承react组件的方法和属性的时候 :

在里面我们可以直接指定 this.state = { }, 我们可以当前组件内任何地方使用 this.setState()来改变组件状态;

注意: 将类的方法绑定到当前对象,避免在方法内部this指针被覆盖

class PCHeader extends React.Component {
constructor() { super(); this.state = { userNickName: '用户', userId: 0 };
  this.handleClick = this. handleClick.bind(this);
 }
}

 

2,Es5 语法

如果使用createClass方法创建一个Component组件,可以自动调用它的getInitialState方法来获取初始化的State对象,但是在ES6的Class中并不会如此自动调用,因此,要稍作修改。

var PCHeader = React.creatClass ({

  getInitialState() {
    return { 
        userNickName: '用户',
        userId: 0
     };
 }
})

 

转载于:https://www.cnblogs.com/qingfengweb/p/6700195.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值