React学习笔记(二)[组件及它的state与props]

2018-09-08  本文已影响0人  朱珠霞

React其中一个重要思想就是 "react内一切皆组件",一个好的应用应该有一定的原则来划分组件。
我们划分组件的时候应该尽量保持一个组件只做一件事。每个小组件只关注实现单个功能,组合起来也能实现复杂的实际需求。
虽然组件都是独立个体,但不同组件之间总会有通信交流。
我们划分组件要满足“高内聚,低耦合”的原则。

组件的数据

react组件的数据分两种:prop和state。prop是组件的对外接口,一般用于组件之间的通信;而state是组件的内部状态。

prop

prop是从外部传递给组件的数据。下面举个例子

//  组件内部代码片段   src/component/todoItem.js
render(){
   return(
     <input value={this.props.value} onChange={changeInputVal} />
   )
},
changeInputVal(e){
  this.props.onChange.call(null,e)//带有参数e的回调函数
}

// 包含todoItem的父组件代码片段    src/app.js
import Todoltem from './component/todoItem.js'
...
  render(){
     return (
        <div className="todolist">
            <TodoItem 
                  value={this.state.inputValue} 
                  onChange={this.updateValue.bind(this)}
             ></TodoItem>
        </div>
     ) 
  },
  updateValue(e){
      console.log(e)//子组件传递过来的参数e
  }

React组件的prop看起来很像是HTML元素的属性,但React组件的prop所能支持的类型丰富比HTML元素的属性更多了,HTML元素的属性仅能是字符串,而prop还可以是任意一种JS所支持的数据类型。
上面例子举出了prop的数据传递方式

state

React组件的数据除了prop外还有state。由于prop是父级传递过来的数据,并不能修改,所以记录自身数据变化只能用state。
上面有两个词语是加粗的,一个是记录,一个是变化。

相关资料
setState:这个API设计到底怎么样

上一篇 下一篇

猜你喜欢

热点阅读