美文网首页程序员
软件架构-01 mvc到flux

软件架构-01 mvc到flux

作者: Gaizka | 来源:发表于2018-11-14 15:07 被阅读178次

    学习mvc到Flux框架我们先了解

    flux 背景:React.js 和Angular.js对比:React.js 是一个视图层的类库lib,我们可以把它当作模版引擎使用,输出html,但是我们无法单独用它输出一个完整的app,而angular的定位是一个框架(framework)。angular自带模板引擎,路由引擎,有健全的数据双向绑定机制,内置Ajax请求功能,还能够定义Model。而React.js类库只能用于定义视图组件。为了补react.js 自身的缺点,后来引入了Flux框架。


    哪有人会问 flux跟MVC有什么关系呢? 接下来我们通过分析MVC、flux的设计原理找到他们的关系。

    MVC:

    理解MVC : https://blog.csdn.net/bobo89455100/article/details/61623242

    MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

    原理图:

    demo事例:

    有图可以看出: controller和model是双向交互数据的

    MVC优点:是使用 controller将view和model 分离,实现解耦。 

    MVC缺点: 代码抽象、要创建多个文件夹,着重大型项目使用,除此之外就是 controller和model的交互数据流是双向的,不能保证数据的安全性。因此出现了Flux.



    Flux架构:

    原理图:

    总结原理图:

    1、主要由三个部分组成:

    action:对事件进行描述以及处理参数传递,驱动dispatcher

    Dispatcher: 实现对是行为的派发

    store: 储存数据 处理原始数据  继承eventEmitter 实现

    2、

    优点:

    由上图可以看出 flux跟MVC的原理优点相似,目的都是将视图和数据分离开,但是flux采用的束流流向是单向的。上层不会过多的处理数据内容,保证数据的唯一性。

    缺点:

    一个应用可以拥有多个store,多个store直接可能有依赖关系(相互引用);

    Store封装了数据和处理数据的逻辑。

    每个项目不一定都是将flux源码原封不动拿来用,我们1期的项目是直接拿的flux的源码,二期根据它的思想写成systemBus 程序一初始化,将所有需要回调的事件全部注册在这个systemBus里(说白了就是上车)支持hook 中间件操作。



    flux demo  git地址:https://github.com/Gallagher1126/flux-demo.git

    2期是擦考flux的设计理念写的 ,后期会上传!

    实现原理:

    1、继承于store的管理类,使用store里的register实现注册  将带有一个action参数的回调函数传入dispatcher的register

    2、发送登录action ,使用dispatcher去像每个注册的管理类发消息 

    3、每个管理类收到停止如果是自己关心的类型就去执行响应的操作,完成操作后执行回调函数返回数据或者结果。

    下一节: 看下软件架构-02  flux-> redux  




    相关文章

      网友评论

        本文标题:软件架构-01 mvc到flux

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