作者:网信科技软件开发部——耿帅
为什么要选用Vue?
Vue与AngularJs 1x具有哪些优点?
之前一直在学习使用AngularJs 1x,之后公司使用Vue,只能再学习Vue了。这里主要说明使用这两个的心得还有一些坑。
一、两者的构成
AngualrJs
1. MVVM(Model+veiw+veiw-model)。
2. 构成:依赖注入Controller 、视图view 、模块Module、服务Service、工厂 Factory、过滤 filter以及指令。
3. 路由主要有两个,自带路由ng-Route和ui-router。
4. 组件定义1.5以下可用directive,1.6可用component这两者相差不大如使用推荐后者。
5. Ajax封装($http)
6. Jquery不友好
Vue
1. MVVM(Model+veiw+veiw-model)。
2. 构成:vue热衷对页面的直接开发(页面组件化),过滤 filter、指令等。
3. 路由vue-router
4. Ajax插件(vue-resource,axios)
5. Jquery 友好
这两者都采用双向数据绑定模式,热衷对页面数据的直接操作。
AngaulrJs 双向数据绑定采用的是脏值检查,每定义一个值都会创建一个$watch,当作用于下一个值发生改变时,其内置的$digest将会遍历所有的$watch,如果有变化则更新,没变化则停止。当数据变化十分频繁时,脏检测对浏览器性能的消耗将会很大,官方注明的最大检测脏值为2000个数据。
Vue 则是采用数据劫持结合发布者-订阅者模式的方式,简单的说observer用来实现对每个vue中的data中定义的属性循环用Object.defineProperty()实现数据劫持,以便利用其中的setter和getter,然后通知订阅者,订阅者会触发它的update方法,对视图进行更新。
二、使用两者的心得
三、总结
两个框架都有让我有所收获,AngularJs教会了我双向数据绑定的正确使用方法以及组件的如何开发应用,Vue让开发难度越来越低,越来越简单。如果让我重新选的话,我想直接选Vue。
附:最近发现vue也可以动态绑定值,感兴趣的童鞋可以试一下,以下是代码。


IT综合服务商
智慧旅游解决方案专家

