美文网首页
React学习笔记(二)[组件及它的state与props]

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

作者: 朱珠霞 | 来源:发表于2018-09-08 17:39 被阅读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的数据传递方式

  • 外部传递数据给react组件---直接使用prop
  • 组件反馈数据给外部---使用带回调函数/参数的函数类型的prop
state

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

  • 变化。
    通常一个组件自身会有多种交互状态或数据的变化。这种变化如果只是内部状态,我们通常会将这些数据放在state内,用于驱动渲染该组件的UI。
  • 记录。
    我们知道,state是用于保存内部数据的,那是否直接改变state的数据就可以驱动组件的渲染呢?答案当然是no。这是react的设计,驱动组件的渲染是函数this.setState(这里涉及到生命周期)。this.setState()函数所做的事情,首先是改变this.state的值,然后驱动组件经历更新过程,这样才有机会让this.state里新的值出现在组件界面上。

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

相关文章

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

    React其中一个重要思想就是 "react内一切皆组件",一个好的应用应该有一定的原则来划分组件。我们划分组件的...

  • React中组件的生命周期

    react 创造组件 引用: 记住:组件不能修改它得到的props state 组件不能改变它得到的props,那...

  • React内部状态state

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

  • React基础

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

  • React - state 与 setState

      React 中与数据相关的属性有: props、state和 context。其中,props表示父组件传递给...

  • React学习笔记(二)

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

  • react组件

    第二单元(react的组件-state-props-setState) 课程目标 组件的基本介绍 理解组件和组件的...

  • react hook -- useState

    基本知识 React的组件有两种属性,state 和 props,state一般是在组件内部使用,而props则代...

  • react中的state和props

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

  • React-Native(入门)

    自定义组件中使用props,在 render函数中引用this.props即可 2.state工作原理与react...

网友评论

      本文标题:React学习笔记(二)[组件及它的state与props]

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