响应式编程与数据驱动概览
什么是响应式编程:
响应式编程:(Reactive Programming 或称反应式编程)是一种流行的编程方法,编写代码是基于对变化的反应。
响应式编程的优点:
执行的代码和执行的线程是分开的。这种方式在服务端的架构里面有很大的意义,只保留一个线程处理程序进程层面的代码,跟Node.js很相似。如果这个线程被阻塞的话,那整个服务器就不会再处理其他请求了。因此,在JavaScript中,每个调用在一开始的时候就是异步执行,在任何情况下都可以通过响应式的API或者其他有用的抽象方式,来解决回调地狱的问题。
数据驱动
数据驱动:是指视图是由数据驱动生成的,对视图的修改,不会直接操作 DOM,而是通过修改数据。相比较传统的前端开发,如 jQuery 前端库直接修改 DOM,大大简化了代码量。特别是当交互复杂的时候,只关心数据的修改会让代码的逻辑变的非常清晰,因为 DOM 变成了数据的映射,所有的逻辑都是对数据的修改,而不用触碰 DOM,这样代码也利于维护。
原生js实现响应式,数据驱动
实现原理及思路
利用发布订阅模式,建立一个订阅器模型,写一个劫持方法,加上观察者模式,利用 js 的Object.defineProperty方法,劫持当前数据,观察到数据发生了变化之后,使用set去改变数据,被订阅