Vue.js设计与实现读书笔记--第一章、权衡的艺术

93 阅读1分钟
框架的设计里到处都体现了权衡的艺术

命令式和声明式的差异:

结论:声明式代码的性能不优于命令式代码的性能

理论上:命令式代码会比生命氏代码做到最优的更新性能 但声明式代码的可维护性更强

声明式代码提升维护性的同时,性能会有一定的损失,而框架要做的就是:在保持可维护性的同时,将性能损失最小化

#声明式代码和命令式代码消耗

我们假设直接修改的新能消耗定义为A,把找出差异的性能消耗定义为B 那么公式如下:

  • 命令式代码的更新性能消耗=A
  • 声明式代码的更新性能消耗=B+A

#虚拟DOM

  • 虚拟DOM,是为了最小化找出差异这一步的性能消耗而诞生的
  • 虚拟DOM的更新技术性能理论上不会比原声JavaScript操作DOM更高

总结

  • 命令式关注过程,声明式关注结果
  • 命令式在理论上可以做到极致优化 ,但是用户要承受巨大的心智负担
  • 声明式能够有效减轻用户的心智负担,但是性能有一定损失 框架设计者要想办法尽量将性能损耗最小化
  • 声明式的更新性能消耗=找出差异的性能消耗+直接修改的性能消耗