React系列-单向数据流-state与SetState

admin 2022年5月24日13:53:18评论11 views字数 980阅读3分16秒阅读模式

前言

  • props配置:使用组件时传入数据
  • state私有数据:组件内部使用的数据

state的使用注意事项
1.必须使用setState方法来更改state
2.多个setState会合并调用
3.props和state更新数据要谨慎(有可能在异步程序中更新)
4.setState操作合并的原理:浅合并,即设置什么属性就更新什么,最终再合并成一个state

// 不要这样去更新
this.setState({
    result: this.state.result + this.props.content
})
// 使用这种方式
this.setState((state, props) => {
    // state 上一个state
    // porps 此次更新时被使用的props
    state.result = state.result + props.content
})
// 设置arr,用一个全新的数组替换,而不再使用原先的引用
this.setState({
	arr: [...this.state.arr, 4]
	// or用数组的concat方法返回新数组
})

 

单向数据流(Vue也是,但是Vue的数据绑定机制是双向的)

state是组件内部特有的数据封装,只影响当前组件的UI的内部的UI
state只能传递给自己的子组件(state的安全影响范围)
其他组件无法读写该组件的state
组件可以通过其他组件调用时传入的属性来传递state的值
props虽然是响应式的,但在组件内部是只读的
组件可以没有状态
组件有无状态可以切换(原先无状态,在生命周期函数/绑定的时间处理函数中增加状态)
总结:这种数据(状态)从父到子,由上而下传递的方式叫单向数据流!!!

class Title extends React.Component {
  constructor(props) {
    super(props);
  }

render(){
return(
<div>
<h1>{this.props.title}</h1>
</div>

)

}
}

class App extends React.Component{
state ={
title:'hello world, I am from App'
}
render (){
return(
<Title title = {this.state.title}/>
)
}

}

 

原文始发于微信公众号(迪哥讲事):React系列-单向数据流-state与SetState

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月24日13:53:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   React系列-单向数据流-state与SetStatehttp://cn-sec.com/archives/1046704.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息