Props、State在React中的不同

原文:https://stackoverflow.com/questions/27991366/what-is-the-difference-between-state-and-props-in-react

Props和State是有关联的,一个组件的state经常会变成它的子组件的props。 Props一般是作为有父组件的render方法的参数传递给子组件的React.createElement()方法的。如果你使用JSX,比较熟悉的tag属性是

<MyChild name={this.state.childsName} />

父组件的状态“childsName”变成了子组件的this.props.name。从子组件来看,name属性是不可变的。如果我们需要更改这个值,父组件应该改变它的内部状态值:

this.setState({childsName: 'New name'});

React将会将这个值传播给子组件,那么另外一个问题接踵而至如果需要更改子组件的prop值怎么办,这个需要由子组件事件以及负组件的回掉函数。子组件抛出一个事件声明例如onNameChanged. 父组件通过传递callback handler来订阅这个事件。

<MyChild name={this.state.childsName} onNameChanged={this.handleName} />

子组件通过调用this.props.onNameChanged('New name'),父组件将使用事件handler来更新状态

handleName:function(newName){

this.setState({childsName:newName});

}

2. 所以Props是作为父组件与子组件沟通的桥梁的,而State是为了储存当前页面需要的数据,使用Props将数据以及事件句柄向下传递给子组件。

Props

(1). 是不可变的这使得React快速检查引用

(2). 用于向下传递数据从(view-controller)

State

(1). 应该在你的view-controller管理它

(2). 是可变的

(3). 性能不好

(4). 子组件不能访问必须通过pros才能向下传递(向子组件传递)




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值