美文网首页简单易懂的React魔法
简单易懂的React魔法(12):State和单一数据源原则

简单易懂的React魔法(12):State和单一数据源原则

作者: 誅诺 | 来源:发表于2017-08-17 17:38 被阅读17次

在我们进一步讨论之前,有个重要的理论你需要注意。别担心,我会长话短说。

当你开始的时候,可能认为让一个组件拥有state是一件好事,毕竟它将功能和相关数据保存在一个对象中,对吧。

确实,通过这种方式来使组件之间相互独立是很有用的方法,可以将大型应用程序分解成更小的部分,但同时也会将程序变得非常复杂。这些数据存在哪里?它是冗余的么?如果它是冗余的,如何保证当数据变化时所有的数据都会更新?当你的应用像是整个facebook那么大的时候,他们有超过10000个react组件。这会产生极大的混乱。

经验丰富的react开发人员的解决方式是,遵从单一数据源原则。你的所有组件应该有一个主状态,然后将这个状态以props的形式传给子组件。

使用这种技术,当主状态的任何一部分发生改变,它会自动更新以这部分为props的子组件,这种变化将会从上到下到达子组件,这是同步方法,不会重复。

在完美的react组件中,很少有组件有state,所以react有一个特殊的语法来创建一种只有render()方法的组件,它们不含有任何state,它们只是接受一个props然后渲染它。下面给出一个简单的例子:

const FunctionalTest = (props) => {
    return {props.message};
};

一旦你保存它,就可以像其他组件一样使用它。

<FunctionalTest message="Hello from a functional component!" />

别强迫自己逃避使用state,要成为一个务实的程序员,该用的时候就用。

相关文章

  • 简单易懂的React魔法(12):State和单一数据源原则

    在我们进一步讨论之前,有个重要的理论你需要注意。别担心,我会长话短说。 当你开始的时候,可能认为让一个组件拥有st...

  • redux 三大原则

    概览 三大原则是 react 提供 可预测化 状态管理的依据。 三大原则 1、单一数据源 整个应用的 state ...

  • 简单易懂的React魔法(10):State和Props

    我们已经会将props作为初始值传给react组件。但是接下来会发生什么呢?如果用户点击了一个按钮或者输入一些文字...

  • 简单易懂的React魔法

    本书通过实战项目来学习React, React Router, Jest, Webpack, ES6等工具。 作者...

  • Flutter与React中的Redux

    一、Redux的三个原则 遵循单一数据源的原则,只存在一个 Store。 State 是只读的,只可以由 disp...

  • react redux 基础

    安装: 三大原则: 单一数据源:整个应用的 state 被储存在一棵 object tree 中,并且这个 obj...

  • react native架构系列(持续更新中)

    1、使用redux、react-redux、redux-thunk做全局状态管理 redux三大原则单一数据源:整...

  • React-Redux简单示例

    一、前言   Redux三大原则: 1)单一数据源 2)State是只读的 3)使用纯函数来执行修改及其涉及的Ac...

  • Redux了解

    一个用于JavaScript应用的可预测状态管理容器。 0. 相关概念 3大原则 单一数据源 State是只读的 ...

  • redux 原理解析

    一、三大原则 可以说redux的核心设计理念,都是基于单一数据源、state 状态只读、使用纯函数来修改 stat...

网友评论

    本文标题:简单易懂的React魔法(12):State和单一数据源原则

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