三者各自的优势
**先说说前端框架的模式**
- MVC:Model(模型)+View(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分开。
View通过Controller来和Model联系,Controller是View和Model的协调者,View和Model不 直接联系,基本联系都是单向的。
用户User通过控制器Controller来操作模板Model从而达到视图View的变化。
- MVP:是从MVC模式演变而来的,都是通过Controller/Presenter负责逻辑的处理+Model提供数据+View负责显示。
在MVP中,Presenter完全把View和Model进行了分离,主要的程序逻辑在Presenter里实现。
并且,Presenter和View是没有直接关联的,是通过定义好的接口进行交互,从而使得在变更View的时候可以保持Presenter不变。
- MVVM:MVVM是把MVC里的Controller和MVP里的Presenter改成了ViewModel。Model+View+ViewModel。
View的变化会自动更新到ViewModel,ViewModel的变化也会自动同步到View上显示。
这种自动同步是因为ViewModel中的属性实现了Observer,当属性变更时都能触发对应的操作。
**原文链接https://www.csdn.net/gather_25/OtTacgysNDA5LWJsb2cO0O0O.html**
优势
-
vue
1.采用MVVM框架模式
2.轻量级的框架,学习成本低
3.现在比较普及的vue cli(2.0/3.0)双向数据绑定(object.defineProperty)
4.有自己的指令(v-model),还可以自定义指令(v-xxx)
5.组件化开发
6.双向数据流
7.数据集中管理(vueX)
8.生命周期、路由、路由的生命周期 -
react
1.采用MVC框架
2.操作的是虚拟dom(jsx语法),极速的渲染性能
3.项目结构清晰
4.组件化开发
5.生命周期、路由
6.组件化开发 组件特性(props/state/setState())
7.数据集中管理器 redux、react-redux等
8.单向数据流
-
angular
1.采用MVC框架
2.良好的结构程序
3.双向数据绑定(脏检查机制)
4.指令
5.适合开发大型项目
6.依赖注入 通过依赖注入$scope可以对控制器等注入一些服务。如`function HelloController($scope, $log) { $scope.greeting = { text: 'Hello' }; } `
劣势
-
vue
1.不支持低版本浏览器(IE8及以下,双向数据绑定会失灵)
2.首次加载页面耗时较长
3.不适合大型项目开发 -
react
1.目标是UI组件
2.不适合采用react框架独立开发一整套项目
3.第三方的依赖库少,不适合做大型项目 -
angular
1.验证信息等类似功能薄弱,需要写很多的模板,不能嵌套多个视图,就算采用angular-ui/ui-router解决这个问题,但是这样做对URL控制性差,并且必须得是嵌套式,
2.学习成本高
3.不适合做中小型项目
三者的区别
vue :双向数据流,vuex集中管理数据,有指令且能自定义指令,双向数据绑定
react :单项数据流,操作虚拟dom,redux集中管理数据,无指令
angular :单项数据流,性能稍差于另外两个框架,学习成本高,双向数据绑定原理不同于vue
三者适合的项目类型
vue :适合中小型项目
react :适合中小型项目
angular :适合大型项目
发表回复