美文网首页
单向数据流的应用与特性

单向数据流的应用与特性

作者: 码农苍耳 | 来源:发表于2017-07-30 21:33 被阅读40次

上次介绍了单向数据流的结构,这次来简单讨论下单向数据流的应用场景。

特性

单向数据流从设计模式上看,应用了大量的命令模式,而命令模式的特定是行为通过命令来驱动,也就是说我们可以缓存命令,或者mock命令,来驱动整个流程和模块。

这就诞生了一个非常有意思的插件,录像功能。这里的录像并不是指的是用户的行为,而且录制整个app的行为。由于所有命令都会经过store,那么可以在中间件中设置一个序列化功能,将所有动作都记录下来,这样我们就可以回溯用户的操作了,比如在crash的时候。有些crash分析会去录制屏幕,来看用户当前操作,但是这样只能查看用户的操作,并不能恢复现场,往往我们去复现的时候,就没有问题了,因为数据以及不一样了。但是通过录制Action的方式录制的行为,数据也会一并被录制,这样就能完全的恢复现场了。

同时利用上述特性,我们还能跟踪用户行为。这里的跟踪就不仅仅是简单的用户事件统计了,而是把用户一连串的行为都记录下来,形成一个完整的流程。虽然这样做目前来说,还没有太大的意义,但是引入机器学习之后,对于用户推荐和喜好可能会有比较大的意义。

可以灵活的替换中间件,来处理一些额外的逻辑。比如上述的记录功能。

回溯功能

在React中,有个工具React-Dev-Tools,他就是按照这种思路来做的。当你发生错误时,你可能回退几步操作,等功能修复好了,直接热部署,就可以进行接下去的操作。这都是依赖了记录Redux内部Action行为。iOS由于自己的原因实现热部署可能会有点困难,但是依然可以利用这种特性来做一些记录。

应用

那么现实情况,我们可以在什么场景下按照这种思路进行开发呢?

首先,这种方式是一种及其繁琐的形式,而且也不是一种非常主流的模式,在应用之前必须考虑到这点,并且考虑到团队内对于这种方式的接受程度,理解程度,不然可能会变得更糟。

其次,应用范围。我们有必要整体的使用吗?在目前的大部分开发中,都是敏捷开发和数据展示,使用这种方式反而显得累赘了。所以我认为,在某些场合下可以考虑使用这种模式:

  • 模块间相互影响,且交互复杂
  • 较高层面,处于整个app层面的,比如router系统

相关文章

  • 单向数据流的应用与特性

    上次介绍了单向数据流的结构,这次来简单讨论下单向数据流的应用场景。 特性 单向数据流从设计模式上看,应用了大量的命...

  • Vue 中的双向数据绑定

    双向绑定 单向数据流 双向绑定 or 单向数据流 Vue 是单向数据流,不是双向绑定 Vue 的双向绑定是语法糖 ...

  • 前端三大框架:数据绑定与数据流

    目录序言单向数据绑定 vs 双向数据绑定单向数据流 vs 双向数据流数据流与数据绑定参考1. 序言在前端三大主流的...

  • 1.莫名的冲动

    VUE2目前炙手可热,因为它既有angular的模板特性,也有React的单向数据流特性,最重要的是它非常的小巧。...

  • 常见vue面试题

    1. 解释单向数据流和双向数据绑定单向数据流: 数据流是单向的。数据流动方向可以跟踪,流动单一,追查问题的时候可以...

  • 19.揭秘 React 真谛:数据状态管理

    如果说组件是 React 应用的骨骼,那么数据就是 React 应用的血液。单向数据流就像血液在应用体中穿梭。处理...

  • Realm 的两个特性: 单向数据流和响应式绑定(React N

    这两个特性也是目前随着前端 UI 越来越复杂,用来解耦的好方法。 单向数据流 Unidirectional dat...

  • flux源码分析

    一、flux介绍 Flux是Facebook用来构建客户端web应用的应用架构。它利用单向数据流的方式来组合rea...

  • React native-Flux单项数据流

    Flux官方概述: Flux是Facebook用于构建客户端Web应用程序的应用程序架构。它通过使用单向数据流补充...

  • vue组件之间的通信方式(二)

    data 和props props常用于数据传递,子组件中不可以直接修改,这也是vue 单向数据流的特性 data...

网友评论

      本文标题:单向数据流的应用与特性

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