一、为什么前端会被vue,angular,react瓜分?
不知道大家有没有发现,这三个框架除了都是前端框架之外,还大有搞基的成分存在。注意他们三个的名字,分别以v,a,r 开头,我这么一说,你是不是忽然间就想到了什么。哈哈,正是如此,将他们组合起来不就是javascript中无处不在的鬼东西么?var(当然纯属于开玩笑的) var关键字,是js的变量声明关键字,可以说,它是js得以运行的核心关键字,因为要想一段代码运行,首先得有各种变量和逻辑判断做支撑,而在es6之前,js能声明变量的,就它一个。这似乎也是暗示了vue,angularjs,react这三个框架的不可替代性啊,也不知道当时这三个框架的作者起名时的想表达的特殊含义是什么,但偏偏就刚好对上了。当然,反过来说,也有可能是起var关键字的这个人,当时考虑得面面俱到。虽然看上去是巧合,但我总感觉这之中总有一种道不明的关系。虽然vue是后起之秀,但就目前的受欢迎程度来说,好像就是这个顺序,至少国内现在肯定是这样的。 有了这三个框架之后,我们告别了以前jquery面条式的代码,也摆脱了到处操作dom元素带来的繁琐,模块业务划分更清晰。这三个框架的出现,不仅让前端的工作得以高效,也让后端省了不少事,比如,路由控制。在以前,干后端是对决要比前端高一个档次的,但现在,完全不一样了。如果有一个牛逼的前端,后端差不多只需要会增删改查的基本业务就能完全搞定一个web应用。当然,这里只是针对代码部分,搭建服务器之类的另当别论。
我们主要从数据流、视图渲染、性能与优化、模块化组件化等四个方面来作比较
1、数据流
Angular 使用双向绑定即:界面的操作能实时反映到数据,数据的变更能实时展现到界面。
1.1、它的实现原理:
$scope变量中使用脏值检查来实现。像ember.js是基于setter,getter的观测机制, $scope.$watch函数,监视一个变量的变化。函数有三参数,”要观察什么”,”在变化时要发生什么”,以及你要监视的是一个变量还是一个对象。 使用ng-model时,你可以使用双向数据绑定。 使用$scope.$watch(视图到模型)以及$scope.$apply(模型到视图),还有$scope.$digest 调用$scope.$watch时只为它传递了一个参数,无论作用域中的什么东西发生了变化,这个函数都会被调用。在ng-model中,这个函数被用来检查模型和视图有没有同步,如果没有同步,它将会使用新值来更新模型数据。
感谢阅读
对您有帮助的话,请点个订阅,小编都会不停更新文章,分享前端学习知识。
网友评论