美文网首页
带小白学react之你到底需不需要redux

带小白学react之你到底需不需要redux

作者: 喜剧之王爱创作 | 来源:发表于2019-05-26 14:34 被阅读0次

今天的文章不同于之前两篇,它对读者的要求略微有所提高,首先你得对react有清晰的理解,并且你得有一定的redux基础,本文章主要是关于使用redux的项目的优化,减少不必要的redux使用,提高项目性能。
本文章不做redux的详细教学,但爱心满满的作者还是会给读者提供一些学习资源

以上三篇文章是阮一峰大牛在多年前写的关于redux的三篇博客,相信大多数redux使用者都有看过,如果你还没有看过,那就要抓紧补上了。
在开始今天的主题前,有几个点我需要强调一下

  • react的state和redux的state根本是完全不沾边的两个东西,切记不要混为一谈。react的state是存在于类组件中的一个存放自身变量的属性,redux的state整个应用的store中的某一个namespace下的状态。二者没有任何关系。
  • redux是一个独立于react的,你可以选择使用也可以选择不适用,如果您不是使用的基于redux的脚手架,那么想使用redux您是需要单独引用的。react包中并没有redux。
  • 假如您的应用中要使用redux,您是需要将react和redux关联起来的,这里有一个包叫react-redux,是用来关联react和redux的,其中有一个高阶函数叫connect,它接受两个方法,mapStateToPropsmapDispatchToProps是这两个方法将redux的state注入到了react的props中。

上面是带大家回顾redux的一些基本知识点,接下来我们进入主题。

redux的使用场景

  • 如果您的React应用中状态十分多,难以维护的时候,这个时候redux是个不错的选择。(这里所说的状态就是react的state
  • 如果您需要数据共享,即多个react组件需要用同一个数据源。
  • 如果您需要一些全局性的状态控制,比如应用中的当前登录人,我们说不定会在哪个组件中使用登录人信息,如果我们将它注册到全局redux中,那么我们就无需关系哪个组件要用了,我们用的时候直接从全局redux中取就行
  • 某组件的业务逻辑过于复杂,在react组件中处理这些数据太过繁琐,我们可以考虑将部分逻辑拆分到redux中。
  • 使用redux可以将数据和UI分离开,如果您为了实现这样的效果,您可以尝试使用redux.

我们为什么要减少redux的使用

看过阮一峰大哥博客的同学一定看到过这几句话

如果你不知道是否需要 Redux,那就是不需要它。

只有遇到 React 实在解决不了的问题,你才需要 Redux 。

所以redux并不是适合所有项目所有应用的。

  • 使用redux需要创建很多模板代码,会让state的更新变得十分复杂,这一点谁用谁知道,哈哈。

  • 使用过多的redux会让应用失去灵活性

  • Redux 带来了函数式编程、不可变性思想等等,为了配合这些理念,开发者必须要写很多“模式代码(boilerplate)”,繁琐以及重复是开发者不愿意容忍的。当然也有很多 hack 旨在减少 boilerplate,但目前阶段,可以说 Redux 天生就附着繁琐;
    使用 Redux,那么你的应用就要用 objects 或者 arrays 描述状态;OMG!
    使用 Redux,那么你的应用就要使用 plain objects 即 actions ,来描述变化;OMG!
    使用 Redux,那么你的应用就要使用纯函数去处理变化;OMG!
    应用中,状态很多都要抽象到 store,那么何时使用 local states 何时接入 Redux store?不能痛痛快快地写业务,一个变化就要对应编写 action(action creator),reducer 等等;
    和响应式结合函数式的 Mobx 相比,编程体验“打折扣”

以上是引用了网友的一段话,可见redux的过多使用时存在很多弊端的,我这里就不一一罗列他的弊端了。感兴趣的同学可以去自己搜一下,总是,我认为能不用redux就不用redux
读到这里,我想解决了一些读者心中的疑问“我们什么时候用react的state什么时候用redux的state?”答案就很明确了。
redux毕竟是一个比较成功的框架,其中的数据流也是很经典,解决了不少难题,任何东西都有利弊,我们只要做好权衡,相信我们可以写出更加优秀的应用。
文章至此结束,想要了解更多redux的优缺点请参考网上众多好文,本文章只是抛砖引玉。再次谢谢您的浏览。

相关文章

  • 带小白学react之你到底需不需要redux

    今天的文章不同于之前两篇,它对读者的要求略微有所提高,首先你得对react有清晰的理解,并且你得有一定的redux...

  • 简单的聊一聊redux

    一、何时需要用redux????? 如果你react项目中你不知道什么时候应该使用redux,那就是你不需要...

  • #React-Redux

    React-Redux是Redux的官方React绑定库。它能够使你的React组件从Redux store中读取...

  • React-redux概念学习

    React-redux 概述 react-redux 能够使你的React组件从React store中很方便的读...

  • Redux for ReactNative (二)

    安装 React Redux Redux不包含React库,需要单独安装React 绑定库 react-redux...

  • redux

    单独使用redux redux是核心库 与react配合使用redux 安装react-redux react-r...

  • 带小白学react之组件通信

    本文章依然是一篇react学习入门文章,适合对react理解混乱的你。稍微接触过react的同学都知道react有...

  • Redux从入门到跳楼

    参考链接: Redux中文文档 Redux 入门教程-阮一峰 看漫画,学 Redux 在react-native中...

  • 第一章:快速开始

    快速开始 React Redux 是React官方认可的Redux,他可以让你的React组件在一个React仓库...

  • React+Rudux项目结构组织的一点思考

    最近开始了自己的一个React小项目,用到了React+Redux+React-Router(v4),由于是纯小白...

网友评论

      本文标题:带小白学react之你到底需不需要redux

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