美文网首页React
Flux-Redux先驱

Flux-Redux先驱

作者: 南方帅 | 来源:发表于2018-12-14 15:20 被阅读0次

Flux的诞生是为了解决MVC模式 在不断开发中难以维护和扩展的问题 他的解决方案就是 单向数据流

由于MVC最大的问题 ModelView之前可以相互通信,在项目后期尤其是大项目中,会越来越混乱

MVC的缺点
Flux模式:中央集权,专管专治
Flux单向数据流模式

1 结构

一个Flux应用包括四个部分

  • Dispatcher 处理时间分发, 维护store之间的依赖关系
  • Store 扶着存储数据和处理数据相关逻辑
  • Action 驱动Dispatcher和JavaScript对象
  • View 视图部分,负责显示用户界面
Dispathcer

dispatcher 存在的作用就是用来派发action

import { Dispatcher } from 'flux'
Action

action 就是一个"动作", 是一个Js对象,其中一个必须有一个名为type的字段,用于记录日志或者debug方便

Store

一个Store也是一个对象,这个对象存储应用状态,同事还要接受Dispatcher派发的动作,根据动作来决定是否要更新应用状态.
注册(register):把当前store注册到Dispatcher下,加入dispatcher关系网
通过emit广播、on挂载事件
store需要注册到全局唯一的Dispatcher上才有效

View

View并不是必须要使用React,View本身也是一个独立的部分,可以使用任何一种UI库来实现.使用的时候必须实现以下功能

  • 创建时要读取Store上状态来初始化组件内部状态
  • Store上状态发生变化是,组件要立刻同步更新内部状态保持一致
  • View如果要改变Store状态,必须而且只能派发action

2 理念

如果要改变界面,必须改变Store中的状态,如果要改变Store中的状态.必须派发一个action对象,这就是规矩和必须.在这个规矩下,想要追溯一个应用的逻辑就变得非常容易.

3 不足

Store之间依赖关系

若果两个Store之间有逻辑依赖关系,就必须用上DsipatcherwaitFor函数,先处理依赖关系

难以进行服务器端渲染

如果要做服务器端渲染,输出的应该是全部都是HTML的字符串.在Flux中有一个全局的Dispathcer,然后每一个Store都是一个全局的唯一对象.这样在客户端还好,但是在服务器端就很困难实现.

Store混杂了逻辑和状态

推荐图书:程墨《深入浅出React和Redux》 推荐阅读react入门之 Redux与flux的比较学习

相关文章

  • Flux-Redux先驱

    Flux的诞生是为了解决MVC模式 在不断开发中难以维护和扩展的问题 他的解决方案就是 单向数据流 由于MVC最大...

  • react-redux

    前面我们已经讲到了,redux实例来更新一组数据。redux-basic 从Flux-redux 现在我们来继续优...

  • 先驱

    走不了的路我去 结果我死在了哪里? 我并没有灵魂 我的血肉化土 在这藤野上 滋生繁花

  • 先驱

    我凝视着你 落笔 记不清编排的顺序 也许你也不会在意 观众的眼睛未必能看到的东西 除了你的情绪 还有你呕...

  • 先驱

    先驱就是走在大众的前面。这个走不是那么轻松的,他要跨越坎坷,经历生死,还要辨别对错,将人们领上正确的道路。 先驱必...

  • 先驱

    先驱 东渡扶桑誓碧涛,疮痍满目几飘摇。 青春觉悟鲸吞恨,热血播传马列昭。 绞索焉能囚道义,...

  • 先驱

    我们都想改变世界 可是现实总是让人无奈 都希望能有人站出来 直面这些看似合理的不合理 所有人都觉得你说的对 所有人...

  • 先驱

    小时候,这里只有我家和叔叔家的房子,一条自家修起来的转了一个弯的四轮车车道连接着公路和我们家,那时的路都是土路。小...

  • 人与生态作为纪录片主题

    本书上章题为《先驱遗产》,盘点了纪录电影先驱及其遗产,这些先驱大多是在1920年代出道的,本章继续盘点纪录电影先驱...

  • 先驱钱学森

    回想我们这位伟大的科学家---钱学森,有太多的回味,每每想到他,都有浓浓的爱国激情涌向心头。说到我们的钱老...

网友评论

    本文标题:Flux-Redux先驱

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