React 拨开迷雾 props state

作者: 元气满满321 | 来源:发表于2016-11-05 21:28 被阅读90次

学习React 时一直对 props state 混淆不清,今天来捋一捋。好记性不如烂笔头!
props:英文中是properties.可以使用它把任意类型( arbitrary inputs)的数据传递给组件.所以我们尽可能把props当成数据源,它有着传递数据的作用.
下面的例子自定义带有参数的组件 Text :

var Text = React.createClass({            
    render: function() {             
      return (                   
         大家好,我是用{this.props.name}渲染出来的!age={this.props.age}                   
       );   
   }     
 });        
ReactDOM.render(<Text name={"react"} age={181}/>,document.getElementById('well'));

浏览器显示结果:

state:每个组件都可以拥有自己的state,state 与 props的区别在于 state 只存在于组件的内部

下面的例子体现了state 保存了该组件Application的必要数据,即下拉框是否显示的布尔值:

let Application = React.createClass({  
  getInitialState: function () {    
     return {      showOptions: false    };  },  
  render: function () {   
     let options;   
     if (this.state.showOptions) {     
       options = (<ul id="options">           
                   <li>apple</li>             
                   <li>banana</li>            
                   <li>pear</li>          
                  </ul>      )    
   }    
    return (       
     <div className="dropdown" onClick={this.handleClick}>
      <button>Choose a fruit</button>{options}        
     </div>   
     )  }, 
  handleClick: function () {   
     this.setState({      showOptions: true    }); 
 }
});

浏览器中点击 Choose a fruit 则出现了下拉框:

可通过 https://github.com/yujuan123/react-state-starter 地址亲手实践该demo

总结
state 保存组件正常工作时的必要数据。比如前面出现过的用来表示下拉框是否显示的布尔(true or false),再比如表单验证时的出错信息显示等等。this.props表示那些一旦定义,就不再改变的特性,而 this.state 是会随着用户互动而产生变化的特性。
注意
1.避免在组件内部修改 this.props,请把props 当作是只读的。
2.使用this.setState来设置状态,而不要使用this.state直接修改状态

对props state 最好的理解莫过于 概念了解+demo试验,所以后续我将对props在组件树上传递数据进行讨论,敬请期待哦!

相关文章

  • React 拨开迷雾 props state

    学习React 时一直对 props state 混淆不清,今天来捋一捋。好记性不如烂笔头!props:英文中是p...

  • React props

    React Props state 和 props 主要的区别在于 props 是不可变的,而 state 可以根...

  • React中的props和state

    props和state this.props 由 React 本身设定, 而 this.state 具有特殊的含义...

  • React基础

    react 教程 react 组件介绍 react state 介绍 react Props 介绍 React:组...

  • React内部状态state

    state   React组件的数据分为两种:props和state,props是组件的对外接口,state是组件...

  • React学习笔记(二)

    state, props,render() 为什么说React是由数据驱动的? 当组件的state或者props发...

  • react中的state和props

    前面提过react中的state和props是react组件中的两大部分,有很多人分不清state和props,这...

  • react native学习笔记6——Props和State

    Props(属性)和State(状态)是React Native中很重要的两个概念。使用Props和State,结...

  • React属性(props)和状态(state)

    React属性(props)和状态(state) 一、属性(props) 属性props是由外部传入、描述性质的,...

  • react组件间通信

    react中的props和state props只读,用于组件之间传递信息,这个信息包括:数据和函数 state用...

网友评论

  • 6d96978eeefb:能否把这篇文章的markdown的原文发给我?我想看一下的markdown语法是如何使用的。
  • 元气满满321:对呢,贴代码时手动换的行 :innocent:
  • 6d96978eeefb:很棒,已经开始写小例子!就是排版有点不整齐

本文标题:React 拨开迷雾 props state

本文链接:https://www.haomeiwen.com/subject/edeguttx.html