有关react的思考之props和state

我计划的是先用react写个demo出来再撸源码。。

但是感觉看源码已经变成一个迫在眉睫的事情。

很多概念都需要看概念才能理解。

不然就只能死记硬背了。

所以现在脑海里两个小人,一个说先写个demo,一个说先看源码。。。

props是什么?

 

经检测,props在没有显式被super(props)继承,也可以使用this.props:

如果使用super(props),能通过this.props访问到props是因为:

class Component {
  constructor(props) {
    this.props = props;
    // ...
  }
}

如果不使用super(props),也可以通过 this.props访问到props

但是:如果只写了:

      constructor(props) { 
		super(); // 😬 我们忘了传入 props 
		console.log(props); // ✅ {} 
		console.log(this.props); // 😬 undefined 
	}

 

所以。要么省略不写,要么,就写全。

那,props到底是什么?

可以使用props向组件传递数据

向一个组件传递数据的方法是将数据写在组件的标签中;

<Content value = {this.state.value}/>

它是一个单向数据流。

状态是什么,怎么使用:

状态为state,其用法如下:

    ① 在组件初始化的时候,通过this.state给组件设定一个初始的state,在第一次render的时候就会用这个数据来渲染组件;

    ② 需要通过this.setState()方法来修改state。

当使用setState时,react会新建新的虚拟dom树,然后与旧的dom树进行比较,得到新旧dom树的差异。然后根据shouldComponentUpdate返回的值或者(如果使用了React.PureComponent,也不全部更新)更新组件。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值