事件驱动和路由驱动

事件驱动和路由驱动比较

事件驱动

事件:针对应用所要发生的事情并使应用做出响应
事件处理:有针对性的,通过预先编制好的代码来对事件进行处理
事件驱动思维:用户行为 => 事件响应 => 代码运行 => 更新 UI 运用事件驱动思维进行编程,我们编写代码时的思路如下:

  1. 开发静态页面
  2. 添加事件监听
  3. 针对不同事件编写不同的处理逻辑
  4. 根据计算后得到的数据,重新渲染页面

通俗地说,使用事件驱动思维去进行编程就是:从事件响应应得到结果出发,来完成应用的设计和编程。

路由驱动

路由驱动也称为数据驱动, ​

数据 什么是数据?引用官方的一句话“数据是事实或观察的结果,是对客观事物的逻辑归纳,适用于表示客观事物的未经加工的原始素材”嗯?这句话看起来有点晦涩难懂,其实数据无非是一堆能够用来体现事物属性,描述事务构成的东西。比如声音、图像等成为模拟数据,符号、文字等成为数字数据。 ​

数据驱动思维: 设计数据结构 => 事件绑定逻辑 => 数据变化 => 更新 UI 运用数据驱动思维去实现编程,我们更多的是思考数据的维护和处理,而无需过于考虑 UI 的变化和事件的监听。 ​

事件驱动 VS 数据驱动

事件驱动

  1. 页面构建:设计 DOM => 生成 DOM => 事件绑定
  2. 事件监听:操作 UI => 触发事件 => 响应处理 => 更新 UI

数据驱动

  1. 页面构建:设计数据结构 => 事件绑定逻辑 => 生成 DOM
  2. 事件监听:操作 UI => 触发事件 => 响应处理 => 数据变化 => 更新 UI

数据驱动和事件驱动可以说有一个是被动的,一个是主动。事件驱动中必须有个引起事件的 sender,而数据驱动是被动的,只要数据发生改变,就由下至上的传递到需要使用的地方,不受 sender 的控制。 从事件驱动转变为数据驱动,在事件驱动的思维下我们会把组件视作 DOM,把事件/逻辑处理视作 Javascript,把样式视为 CSS。转变到数据驱动思维之后,我们会把这些组件、事件、逻辑处理、样式都看作数据,我们需要做的只是对数据状态的处理。使用数据驱动的思维编程,我们将会有如下好处:

  1. 数据变化更方便
  2. DOM 结构更轻巧
  3. DOM 结构调整更低耗
  4. 抽象设计
  5. 代码量相对减少,易于维护

Truth needs no colour; beauty, no pencil

真理不需色彩,美丽不需涂饰

Website Built By Cheng