发表于: 2017-03-26 00:00:10
1 1256
今天做的事
多拆了接口task
学习接口部分的写法
看了下vue和angular的一些内容和比较
收获以及困惑
task之前以为拆好了,其实做的不好
接口的调试需要单独拆出一个task,这样才能更直观的看出进度
不然的话,就会开始一个task后,因无法调试接口而无法结束
回家学习的接口部分的js分了三个部分
一个是路径,一个是登陆验证部分,一个就是具体的各个方法
这样的写法好处是看上去很有规划,需要更改的时候找到对应的部分改个接口路径就好了
再有因为看错了轮到我ppt的时间,花了一些时间看vue和angular的问题
ng1和vue的双向绑定实现上,vue是占据优势的
Angular的数据观测采用的“脏值检查机制”,每一个指令都会有一个对应的用来观察到对象的变化,这个应用叫做watcher,一个作用域中可能会有多个watcher,当数据发生变化,页面更新,Angular会遍历当前页面中所有的watcher,对他们一一求值,与之前的值进行对比,如果求值的结果变化了,就会触发对应的更新,这个过程叫做digest cycle。脏值检查的劣势也就有两点:
- 任何数据变动都意味着当前作用域的每一个watcher需要被重新求值,因此当watcher的数量庞大时,应用的性能就不可避免地受到影响,并且很难优化。
- 当数据变动时,框架并不能主动侦测到变化的发生,需要手动触发digest cycle才能触发相应的DOM 更新。Angular通过在DOM事件处理函数中自动触发digest cycle部分规避了这个问题,但还是有很多情况需要用户手动进行触发,这一点很容易在初学者出现问题,不知道什么情况。
Vue.js采用的则是基于依赖收集的观测机制。也有一说法,叫做数据劫持,用到了ES5的Object.defineProperty(),所以它只能兼容到IE9之后的环境。它的基本原理是:
- 将原生的数据改造成 “可观察对象”。一个可观察对象可以被取值,也可以被赋值。
- 在watcher的求值过程中,每一个被取值的可观察对象都会将当前的watcher注册为自己的一个订阅者,并成为当前watcher的一个依赖。
- 当一个被依赖的可观察对象被赋值时,它会通知所有订阅自己的watcher重新求值,并触发相应的更新。
- 依赖收集的优点在于可以精确、主动地追踪数据的变化,不存在上述提到的脏检查的两个问题。但传统的依赖收集实现,比如Knockout,通常需要包裹原生数据来制造可观察对象,在取值和赋值时需要采用函数调用的形式,在进行数据操作时写法繁琐,不够直观;同时,对复杂嵌套结构的对象支持也不理想。
虽然老大出于对学员学习的考虑更偏向angular
但是我认为技术的选择应该更加向项目需求靠拢,哪个更有优势就用哪个
评论