react的state和props

作者: 爱穿裤衩的小粗腿城 | 来源:发表于2017-01-03 15:07 被阅读492次

state状态和props属性是react非常重要的两个方面,状态控制组件内部的变化,属性获取外部传递给内部的数据,当state和props改变时,会重新调用render方法,渲染dom对象。

state状态

常用方法:

  1. getInitialState:获取组件的初始化状态,在组件加载的时候调用(render前)
  2. this.state:获取组件的状态的值,但不能通过this.state.xxx = xxx改变状态的值
  3. this.setState:用来改变组件状态的值 ,用法如下
var Radio= React.createClass({ 
  // 定义组件的初始状态,初始为关 
  getInitialState: function() {
     return { checked: false } 
  }, // 通过 this.state 获取当前状态 
  changeCheck: function() { 
    this.setState({ checked: !this.state.checked}); }
 }),
  render: function() {
     return <label className="radio"> 
        <input type="radio" checked={this.state.checked} onChange={this.changeCheck}/> 选中
      </label> 
},
 // 通过 setState 修改组件状态 // setState 过后会 React 会调用 render 方法重渲染 

props属性

常用方法:
1.this.props.xxx 用来获取写在组件中的xxx属性的值 注意jsx中class属性为 className,for属性为 htmlFor;
2.getDefaultProps:获取默认的属性对象,在render前调用一次,用于将组件中绑定的属性添加到this.props ;可以设置默认值,当组件属性没传值时,调用默认值;
3.this.props.children :获取子节点的属性,其中children只能为一个元素,不能为组件

var GetChildItem = React.createClass({ 
  render: function() { 
    var props = this.props; 
    return <div className="todo-item"> 
      <span class="todo-item__name">{props.children}</span> 
    </div> 
    }
 });
 ReactDOM.render( 
    <GetChildItem >子节点内容</GetChildItem >, document.getElementById('example'));
  1. propsType用来校验属性传递的正确性(非空,类型验证等),通常写在最前面;
    var MyComponent = React.createClass({
        propTypes: {
            optionalRequired:React.PropTypes.isRequired,//不能为空
            optionalArray: React.PropTypes.array,
            optionalBool: React.PropTypes.bool,
            optionalFunc: React.PropTypes.func,
            optionalNumber: React.PropTypes.number,
            optionalObject: React.PropTypes.object,
            optionalString: React.PropTypes.string,
            // 任何可以被渲染的包括,数字,字符串,组件,或者数组
            optionalNode: React.PropTypes.node,
            // React 元素
            optionalElement: React.PropTypes.element,
            customProp: function(props, propName, componentName) {}//自定义校验
        }
    });

相关文章

  • React props

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

  • React中的props和state

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

  • React内部状态state

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

  • react中的state和props

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

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

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

  • react组件间通信

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

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

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

  • React基础

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

  • react state和props

    state: state 的主要作用是用于组件保存、控制、修改自己的可变状态。state 在组件内部初始化,可以被...

  • react 学习笔记(二)

    这次主要针对react state和props这两个元素进行分析 state: 在react只需更新组件的stat...

网友评论

    本文标题:react的state和props

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