react不用redux可以吗?

react不用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,它接受两个方法,mapStateToProps和mapDispatchToProps是这两个方法将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。

redux毕竟是一个比较成功的框架,其中的数据流也是很经典,解决了不少难题,任何东西都有利弊,我们只要做好权衡,相信我们可以写出更加优秀的应用。

更多网站前端开发知识,请查阅 HTML中文网 !!

以上就是react不用redux可以吗?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读