当前位置: 首页 > news >正文

嘉兴营销型网站我们是设计师 网站建设专家

嘉兴营销型网站,我们是设计师 网站建设专家,wordpress分段加载,百度关键词推广公司从入门的角度来聊一下React 的状态提升。我们先来看一下React官网是怎么介绍这一概念的#xff1a;使用 react 经常会遇到几个组件需要共用状态数据的情况。这种情况下#xff0c;我们最好将这部分共享的状态提升至他们最近的父组件当中进行管理。很简单的一句介绍#xff0…从入门的角度来聊一下React 的状态提升。我们先来看一下React官网是怎么介绍这一概念的使用 react 经常会遇到几个组件需要共用状态数据的情况。这种情况下我们最好将这部分共享的状态提升至他们最近的父组件当中进行管理。很简单的一句介绍由此我们可以很清楚的明白React状态提升主要就是用来处理父组件和子组件的数据传递的他可以让我们的数据流动的形式是自顶向下单向流动的所有组件的数据都是来自于他们的父辈组件也都是由父辈组件来统一存储和修改再传入子组件当中。举个栗子现在我们需要实现一个统计总价的功能1、首先先写一个父组件class Category extends React.Component { constructor(props){super(props);this.state {name: React.JS}}render(){return h1{this.state.name}/h1} } ReactDOM.render(Category /,document.getElementById(app) )复制代码2、再定义一个子组件并拿到父组件传递下来的props值// 子组件 class Children extends React.Component {constructor(props){super(props);}render(){return(divlabel{this.props.num}input value{this.props.num} /button/button/label/div)} } // 父组件 class Category extends React.Component {constructor(props){super(props);this.state {name: React.JS,num1: 0}}render(){return(divh2{this.state.num1}/h2Children num{this.state.num1} //div)} }复制代码      现在我们可以看到Children这个子组件的数据是从父组件传下来通过this.props拿到          的但是现在还不能在子组件上面去修改父组件的数据所以我们的子组件的数据也无            法得到改变。3、现在我们在子组件里面定义属性来触发父组件的事件class Children extends React.Component {constructor(props){super(props);}// input输入框事件setNum(e){this.props.setNum(e.target.value)}// 按钮递增事件addNum(){this.props.addNum()}render(){return(divlabel{this.props.num}input onChange{(e)this.setNum(e)} value{this.props.num} /button onClick{()this.addNum()}/button/label/div)} } class Category extends React.Component {constructor(props){super(props);this.state {name: React.JS,// 将子组件的需要用到的数据存放在父组件内在子组件内通过this.props可以取到num1: 0}}// 处理子组件传上来触发input输入框的处理事件setNum(e){this.setState({num1: parseInt(e)})}// 处理子组件传上来触发button按钮的处理事件addNum(){this.setState({num1: this.state.num1 1})}render(){return(divh2{this.state.num1}/h2// 子组件通过this.props可以触发对应绑定的事件来修改自身的数据Children addNum{()this.addNum()} setNum{(e)this.setNum(e)} num{this.state.num1} //div)} }复制代码到这一步功能已经实现了子组件通过this.props去拿父组件的数据并可以触发属性上面绑定的对应函数来修改父组件的数据使子组件的数据得到更新其实可以看出Children这个组件的数据不是独立的而是来自Category组件传下来的所以这个Children组件是可以随意复用的只需要在他的父组件Category上为他存放一个给她传递数据的变量就OK了。1、首先我们在Category类的构造函数里的this.state内添加一个新的变量来处理我们即将新       增的另一个子组件constructor(props){super(props);this.state {name: React.JS,num1: 0,// 添加一个用来处理新组件数据的变量num2: 0 } }复制代码2、然后在Category组件里我们再写一个新的Children组件属性上面绑定的数据全部换成们         刚才定义的新变量render(){return(divh2{this.state.num1}/h2Children addNum{()this.addNum()} setNum{(e)this.setNum(e)} num{this.state.num1} /Children num{this.state.num2} //div) }复制代码3、给他绑定属性事件来修改处理他的变量class Category extends React.Component {constructor(props){super(props);this.state {name: React.JS,num1: 0,num2: 0}} // 处理num1数据的子组件setNum(e){this.setState({num1: parseInt(e)})}addNum(){this.setState({num1: this.state.num1 1})} // 处理num2数据的子组件newSetNum(e){this.setState({num2: parseInt(e)})}newAddNum(){this.setState({num2: this.state.num2 1})}render(){return(div// 这里接收两个组件的数据总和h2{this.state.num1 this.state.num2}/h2Children addNum{()this.addNum()} setNum{(e)this.setNum(e)} num{this.state.num1} /// 在属性上面绑定新的事件来处理该组件的事件Children addNum{()this.newAddNum()} setNum{(e)this.newSetNum(e)} num{this.state.num2} //div)} }复制代码现在看一下实际效果*总结所以React的状态提升其实是为了组件之间的数据更加单向性在数据的传输上始终只会出现一对一的情况在处理上也方便我们只需要在向子组件传递数据的那个父辈组件上进行操作并传回子组件使得数据更新这种方法也体现了React的单向数据流的设计思想在复用组件的时候组件的数据也不会相互干扰使代码逻辑上会更加便于管理。
http://wiki.neutronadmin.com/news/295444/

相关文章:

  • 网站制作公司哪家好一点老域名对做网站的
  • 城乡和住房建设部网站施工企业质量管理制度
  • 个人做的小网站需要备案外贸论坛福步
  • wordpress开发中介网站商品房建设信息网站
  • 中型网站开发语言云南模板网站建设公司
  • 网站建设最便宜在线小游戏
  • 做淘宝要用到哪些网站昆明网站制作策划
  • 昌平网站制作app开发费用标准
  • 网站建设 保定施工企业信用评价
  • 南昌门户网站建设h5 网站模板
  • 佛山营销型网站设计国外服务器网站打开慢
  • 做一个网站的价钱百度热门
  • 淮安建设企业网站国外h5网站模板下载
  • 网站建设方案书是啥比较好的网站建设品牌升级
  • 晟合建设集团网站aspnet网站开发书
  • 天津市建设交易中心网站婚纱设计网站首页
  • 新北区城乡建设局网站wordpress 头像打岔
  • 旅行社网站建设规划方案seo博客网站
  • 做app网站的软件有哪些内容医院网站建设运营方案
  • 建设局域网网站部队内网网站建设方案
  • wordpress 只有英文百度seo流量
  • 绍兴网站建设专业的公司个人网页制作总结
  • 电子商务网站规划与网页制作wap版
  • 网站安全软件宁波seo优化
  • 建立网站赚钱商城网站开发报价单
  • 苏州做物流网站电话广告
  • c2c网站方案网站怎么防k
  • 做一些网站的弹出页面做网站的公司是什么
  • 网站开发技能证书福州网签查询系统
  • 南通的网站建设广告推广赚钱