flux与mvc的区别

Flux:

  View层将用户的动作转化为action,并发送Action层,Action层里面预先写好了应对脚本,在完成一系列的处理后,使用dispatch告诉Store层执行变更,Store层因为提前在dispatch注册了变更规则,所以现在Store可以变更数据,同时在数据变更后,通知View层,因为View预先针对Store层数据的变更执行了注册功能,所以View层可以接受到通知。

MVC:

  传统MVC架构中,controler层 接受view层的请求,同时根据业务逻辑,调用不同的model层完成处理,当Model层数据变更后,会自动通知view层,view层在得知model变更后,会自动更新视图

flux官方说:

  mvc中 model与view混乱的绑定关系,导致在理清数据流方向的时候变得格外困难,当想要找到一条数据确切的来源的时候,需要在不同的model和view中来回穿梭,而flux的解决方案是:

  定义一个存储器,将数据和数据操作全部放在一个地方,同时使用action严格定义操作行为,这样的话,数据流就简单清晰了很多。因为所有对数据的操作 都放在数据旁边,同时因为单向数据流的原因,我们可以很清楚的判断出整个数据的脉络。这是因为 flux重新定义了应用程序的概念:

  flux将应用程序抽象成视图和行为两个概念,同时将行为理解为对于数据的变更,组件要做的事情 只是响应数据和发送用户的行为,最终如何处理用户的行为 在flux的store中去定义,这样的话,无论一个项目多复杂,他的业务逻辑全部糅合在store中,简单明了,而不是分在不同的controller中。这就好像一个传感器,把传感器分为连个部分,1个部分是接受外边事物的信息,并在内部将该外在影响抽象为数据,然后将数据发给第二个部分,第二个部分就是完全的业务逻辑数据化抽象处理,当接受到第一步分传过来的事件数据的时候,根据业务逻辑 对数据完成处理之后,会更新内部的数据,而第一部分 因为使用了第二部分的数据,用来显示信息,所以当第二部分的数据变更之后,第一部分的显示信息自然而然的更新了,这里面的重点是 flux把整个业务逻辑 封装在了store层。

最本质的区别,mvc遵从单一职责原则,将业务逻辑分散外不同的地方,使得维护变得困难,而flex则从抽象角度出发 将一个应用分为视图和业务数据处理两部分,这样统一在一个地方维护业务逻辑 使得更加好维护了

原文地址:https://www.cnblogs.com/mrzhu/p/12403571.html

时间: 2024-10-14 04:40:31

flux与mvc的区别的相关文章

三层架构和MVC的区别

网络上大多数地方在说到三层架构和MVC的区别的时候,都说MVC是把三层架构中表现层分离出来,在进行进一步的划分.甚至在描述到这一块时,词语,标点符号都一模一样.但这种观点并不正确. 三层架构:1:数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务.2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些

MVVM和MVC的区别,以及MVVM的缺点

MVVM和MVC的区别 MVC和MVVM的区别其实并不大.都是一种设计思想. 主要就是MVC中Controller演变成MVVM中的viewModel. MVVM主要解决了MVC中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验. 当和Model频繁发生变化,开发者需要主动更新到View. MVVM:是Model-View-ViewModel的简写 M:对应于MVC的M V:对应于MVC的V VM:ViewModel,是把MVC里的controller的数据加载,加工功能分离出来

iOS面试题:MVVM和MVC的区别

MVVM和MVC的区别 1. MVC MVC的弊端 厚重的View Controller M:模型model的对象通常非常的简单.根据Apple的文档,model应包括数据和操作数据的业务逻辑.而在实践中,model层往往非常薄,不管怎样,model层的业务逻辑不应被拖入到controller. V:视图view通常是UIKit控件(component,这里根据习惯译为控件)或者编码定义的UIKit控件的集合.View的如何构建(PS:IB或者手写界面)何必让Controller知晓,同时Vie

Struts2和Spring MVC的区别

概述: Struts2框架中,Action类是其核心类,XxxAction被称作业务逻辑控制器,实现了对用户请求信息的处理.Struts2框架的引入,使用XxxAction作为控制层,将视图层和模型层相分离,真正实现了MVC开发模式,使得整个工程分成Model(持久层/业务层).View.Controller三层,使得软件耦合度被降低. SpringMVC和Struts2框架的功能相似,也是实现视图层和控制层的分离,使得软件耦合度降低.并且,SpringMVC 是Spring内置的Spring 

Struts的MVC和Spring的MVC的区别

最近才发现spring也能实现MVC,于是在网上找了找相关介绍: 当初选框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢 不用不知道一用就发现开发效率确实比struts2高 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置 spring3 mvc可以认为已经100%零配置了(除了配置springmvc-servlet.xml外) 比较了一下strus2与spring3 mvc的差别 ===================

MTV和MVC的区别

著名的MVC模式:方便解藕 所谓的MVC就是把web应用分为三层 1.模型层: model     负责业务对象和数据库的对象(ORM) 2.视图层       views 负责与用户的交互(书写逻辑) 3.控制器 Controller   完成用户对模型层和视图层调用,来完成用户的请求 Django的MTV模式本质上和MVC没有什么大的差别,也是为了实现解藕性,只是定义上有些不同 1.模型层: model    负责业务对象与数据库的对象(ORM) 2.模板层 Template 负责如何把页面

关于flux redux vuex 的区别?

一:redux和flux的区别 1)redux是flux中的一个实现 2)在redux中我们只能定义一个store,在flux中我们可以定义多个 3)在redux中,store和dispatch都放到了store,结构更加清晰 4)在redux中本身就内置State对象,对仓库的管理更加明确 二:redux和vuex的区别 1)vuex是redux的基础上进行改变,对仓库的管理更加明确 2)使用mutation来替换redux中的reducer 3)vuex有自动渲染的功能,所以不需要更新 4)

一般处理程序、ASP.NET和MVC的区别

这个问题说起来,我有点惭愧 想当初在大学里学的就是ASP.NET WebForms 在实习期间也是用的WebForms来开发网站,然后就觉得.NET开发网站就是用这个开发模式 现在想想都想笑...实在忍不住了,我要笑了.哈哈哈!!! 好,回到正题 ASP.NET 是一个使用 HTML.CSS.JavaScript 和服务器脚本创建网页和网站的开发框架. ASP.NET 支持三种不同的开发模式: Web Pages(Web 页面).Web Forms(Web 窗体).MVC(Model View

MVVM和MVC的区别

MVVM(Model-View-ViewModel) 优点:低耦合:可重用:独立开发:可测试 即,将页面与数据分离的模式:将数据绑定工作放到javaScript文件中实现,javaScript文件的主要功能是完成数据绑定,即把model绑定到UI元素上: MVVM的另一重要特性:双向绑定.[方便同时维护页面上都依赖于某个字段的N个区域,而不用手动更新] MVC(Model View Controller) 即,模块-视图-控制器: 其主要关注的是Model不变,Model不依赖于view,但是v