美文网首页
React组件开发小记(二)—— React的数据

React组件开发小记(二)—— React的数据

作者: Ynimi璞 | 来源:发表于2017-06-21 00:50 被阅读155次

       刚从JQ转向React进行开发的时候,领导和我说了一句话 “React组件的数据,是谁持有,谁消费”。其实当时并不明白这句话什么意思。现在对照JQ,把理解写下来。有错漏请看官指出。
       React中最重要的两个概念就是props和state。props是指父组件传递下来的属性(props可以是一个任意类型的数据),state是组件本身自我管理的状态。组件如何进行自我管理state,还有如何利用props,就成了初步使用react的第一个问题。
       首先必须明确的一点是在React中,数据只能单向的从父组件中传递给子组件。如果子组件想要把数据传递给父组件,只能通过props回调。即 props是一个方法,子组件调用这个方法,可以把想要给父组件的数据通过参数传回去。
       明白了以上三点,开始这篇的话题。

       现在有个场景。参照antd的Table组件,如下图:

table.png

       页面首次加载的时候,首先请求接口数据渲染表格。假设左上角的按钮修改了数据,会重新渲染表格。
       组件划分是:
       页面上有组件TableContainer,TableContainer包含左上角按钮,和Table组件(Button与Table未拆分)。
       刚开发这个表格,我想的方案是:在页面componentWillMount中请求接口,将返回的数据通过props传递下去。存入子组件的state。Table渲染state数据。点击按钮后重新请求接口,将数据更新state。
       这个思维方式被领导批评为仍然是JQ思想。按照我当时JQ的想法,按钮的事件中写好接口,然后接收数据。数据和页面无关。

       比较合适的方案:
       按钮组件和Table分离。数据是页面的,因此由页面处理。Button组件只负责通知页面要请求数据,具体这个发送等操作,还是由页面执行。Table组件只负责渲染。这就是所谓的“谁持有,谁消费”。
       首次请求数据,将数据存入页面的state中,在render中读取state,通过props一层层传递给Table组件。同时定义好一个请求数据的方法(假设方法名为getTableData)。将这个方法通过props传递给按钮组件。Button的click事件中调用getTableData方法。click事件被触发,则数据重新被请求,更新页面state。传下来使table数据刷新。
       第二种方案中,数据只在页面上操作,子组件只需要对数据进行渲染,不操作数据。即:所有的数据处理,都只在容器组件中处理。
       至于为什么这么做,下一篇(你为什么需要componentShouldUpdate?)中解释。

相关文章

  • React组件开发小记(二)—— React的数据

    刚从JQ转向React进行开发的时候,领导和我说了一句话 “React组件的数据,是谁持有,谁消费”。其实当时并...

  • react组件间通信

    React 开发模式是组件化开发, 所以组件间的信息传递就尤为重要,React传递数据的方式主要有3种。 prop...

  • React相关内容

    一、react开发环境的熟悉 二、在react开发环境下,结合antd-mobile以及antd-design组件...

  • (1)React的开发

    1、React项目架构搭建2、JSX语法3、React组件化开发4、React组件间通信5、React中的事件6、...

  • React Native常用组件之ScrollView

    配置React Native的开发环境 React Native常用组件之ScrollView React Nat...

  • 2、react基础介绍

    React理念 划分组件边界的原则 React组件的数据种类 React组件的声明周期 组件的划分 高内聚 低耦合...

  • React Native 架构之 Redux介绍

    React 在 React 中,UI 以组件的形式来搭建,组件之间可以嵌套组合。另,React 中组件间通信的数据...

  • 《图解React》- 第五节 组件

    组件 组件是React的核心概念,是React应用程序的基石。组件是React开发的一个最小单元,利用“分而治之”...

  • NT 技术周刊-1028

    React-Native 组件开发方法[原创] 摘要 �React Native的开发思路是通过组合各种组件来组织...

  • React基础

    React包含react元素和react组件 react元素 react组件 react组件分为函数组件和类组件 ...

网友评论

      本文标题:React组件开发小记(二)—— React的数据

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