美文网首页
redux实践体会

redux实践体会

作者: new_xd | 来源:发表于2018-04-07 12:36 被阅读0次

最近在项目里实践了一把redux框架,有些感受记录一下。

框架的实现使用这个库Reductor: Redux for Android,

之前各种说java不适合用redux,但是亲自上手后,感觉这个库已经把大部分问题都解决了。

下面说重点

以数据为核心的开发思路

之前的开发方式,很大程度上我们专注于业务流程的实现,

一个功能的实现,我们会考虑功能中包含的业务逻辑,业务流程,

思考的方式是界面上有什么东西,点击按钮会触发什么逻辑,然后走什么流程,最后提交服务器,返回之后,又怎么刷新界面。

当我们想象应用运行时,其实看的是应用包含的流程,复杂的应用就会产生不同流程的耦合,逻辑越来越复杂

而使用redux,我们需要专注于如何设计数据,用以表达应用。

一个功能,首先要思考它有哪些数据,用最小的数据,表达它的所有状态,

然后思考什么样的操作或者业务流程会产生什么样的数据变化,

最后思考什么样的数据产生什么样的界面。

当我们想象应用运行时,我们看到的是应用的数据,是静态的,不管多复杂的业务逻辑,都转化为对数据的改变。

redux开发的合适顺序

  1. 设计store,用最少的数据集完整的表达应用

  2. 设计action,理清楚应用都有哪些产生数据变化的事件

  3. 设计reducer,实现在不同action下,数据如何变化

  4. 实现view,根据数据展示view,根据view的操作和业务流程发送action

其它一些细节

  1. 数据应该使用不变量,集合可以使用pcollection,其他数据结构可以使用kotlin的 data class,或者google的AutoValue(我用的kotlin)

  2. json直接转不变量目前没有方案

  3. action应该设计的尽量业务含义清晰,因为数据的变化是由于action带来的,如果action的业务含义不清晰,就很难理解应用到底发生了什么

  4. 像loading状态这种view的状态,不要放到store里,应该在流程中用回调的方式控制

  5. 注意action发送、reducer处理、数据变化监听都是在一个线程里,一般都在主线程,所以发送action的时候都要在主线程

  6. 通过Middleware可以实现异步action,从而达到业务逻辑和view解耦

相关文章

  • redux实践体会

    最近在项目里实践了一把redux框架,有些感受记录一下。 框架的实现使用这个库Reductor: Redux fo...

  • dva 框架介绍

    dva 是基于 redux 最佳实践 实现的 framework,简化使用 redux 和 redux-saga ...

  • react-redux实践

    react-redux实践 了解 1、什么是redux 官方解释:redux 是 js 应用的可预测状态的容器。 ...

  • Retalk,Redux 从未如此简单

    简介 Retalk 是 Redux 的一个最佳实践,简单、流畅而智慧。 特性 极简 Redux 实践:只需要 st...

  • React+Redux工程目录结构,最佳实践

    参考 Redux进阶系列1: React+Redux项目结构最佳实践 《深入浅出React和Redux》一书的第四...

  • Redux 实践

    为了更深刻理解redux,我们将使用一个简化的购物车项目来学习Redux。 组织Redux代码 首先,在src文件...

  • Flutter redux 使用与理解

    Flutter 状态管理redux 方案理解与实践 redux 数据管理方式来自 react ,React 的数据...

  • Redux Persist 最佳实践

    Redux Persist 最佳实践 希望可以帮助大家使用和了解redux-persist的相关能力 接入 npm...

  • dvajs-core在vue的实践

    dvajs dvajs来源于支付宝前端的实践,基于redux、redux-saga和react-router 的轻...

  • React-Redux分析

    React-Redux分析 Redux,作为大型React应用状态管理最常用的工具,其概念理论和实践都是很值得我们...

网友评论

      本文标题:redux实践体会

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