阅读《Vue.js计划与实现》 -- 01

[复制链接]
发表于 2025-10-27 04:48:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
菜鸟迩来闲暇(大的项目没开始,别的项目根本没事了),不知道干啥(刷掘金刷多了,感觉文章都写得差不多,不知道学什么,缘故原由如下:沸点),以是开始看《Vue.js计划与实现》!


第一章

第一章重要是告诉我们要有全局观,在一个大型框架开始的时间就要确定好准确的方向,方向错了,反面的代码写得再好也只是漂亮的屎山!
怎样确定好方向?第一章告诉了我们四个点:

  • 编程范式选择
  • 性能与可维护的衡量
  • 性能
  • 运行时?编译时?
相识编程范式

编程范式(Programming paradigm)是指一类典范的编程风格,用于办理题目和编写步调!
编程范式是步调员对待步调应该具有的观点,为了满意差别的场景,进步生产力而诞生的。
编程范式是编程语言的一种分类方式,它并不针对某种编程语言。就编程语言而言,一种编程语言也可以实用多种编程范式。

  • 下令式编程(Imperative Programming) :

    • 通过明白的语句来改变步调状态(险些全部盘算机的硬件工作都是下令式的)
    • 常见语言:C、Java、Python

  • 面向对象编程(Object-Oriented Programming, OOP) :

    • 基于对象和类的概念,夸大封装、继承和多态(分而治之,办理复杂性的本领)
    • 常见语言:Java、C++、Python

  • 声明式编程(Declarative Programming) :

    • 形貌 “是什么” 而不是 “怎么做”,关注结果而非过程(函数式和逻辑式是其核心的两种范式)
    • 常见语言:SQL、HTML、CSS



  • 3-1. 函数式编程(Functional Programming) :

    • 夸大函数的使用,制止状态和可变数据(声明式中的一种)
    • 常见语言:Haskell、Scala、Erlang

  • 3-2. 逻辑编程(Logic Programming) :

    • 基于逻辑推理,使用规则和究竟来举行盘算(声明式中的一种)
    • 常见语言:Prolog


  • 变乱驱动编程(Event-Driven Programming) :

    • 通过变乱和变乱处置处罚器来驱动步调的实验
    • 常见应用:JavaScript在欣赏器中的使用

  • 并发编程(Concurrent Programming) :

    • 处置处罚多个使命同时实验,关注同步和通讯
    • 常见语言:Go、Erlang

每种编程范式都有实在用的场景和上风,选择符合的范式可以进步步调的可读性、可维护性和服从。
相识编程范式后,菜鸟感觉似乎可以明白vue作者了,起首作者只思量了两种范式:下令式 和 声明式。至于为什么不思量别的,感觉大概是由于:

  • js 利用 dom 就是下令式编程
  • html、css 已经是声明式编程了,如果把 js 利用 dom 也搞成声明式,那么可以同一前端范式
  • js 的原型链并不得劈面向对象编程,es6 的 class 也只是将原型链封装得像 OOP,不是底层变化了
  • 变乱驱动、并发编程和下令式实在都在 js 中体现了,但是利用 dom 是下令式
以上只是菜鸟脑补,真实缘故原由是:
   从范式上来看,视图层框架通常分为下令式和声明式,它们各有优缺点。作为框架计划者,应该对两种范式都有富足的认知,如许才气做出准确的选择,乃至想办法罗致两者的优点并将其捏合。
  注意

固然vue给我们的用法是声明式的,但这是由于vue封装了下令式编程,让我们能用到更好用的声明式编程!
题目

为什么视图层框架肯定只能是 下令式 和 声明式?为什么不能是OOP、变乱驱动编程、并发编程?
懂的读者可以品评一下!
性能和可维护性

确定好了编程范式只能是 下令式 和 声明式,那这两个谁更好维护呢?
答案显而易见,肯定是声明式!
但是:声明式代码的性能不优于下令式代码的性能,《Vue.js计划与实现》 给我们举了个例子:
如果要更换掉div中的笔墨,原生js会如许
  1. div.textContent = 'hello vue3' // 直接修改 --> A
复制代码
很显着没有比这个性能更好的代码了!声明式的代码,必要先找到到前后的差异并只更新厘革的地方(B),但是终极完成这次更新的代码仍旧是上面的代码(A)!
以是性能对比:


  • 下令式代码的更新性能斲丧 = A
  • 声明式代码的更新性能斲丧 = B + A
但是vue为了方便我们后续维护项目,以是选择断送了部门性能来更换,框架计划者要做的就是:在保持可维护性的同时让性能丧失最小化!
而且这是最简朴的修改,但是并不是全部利用都如许简朴,要是都是如许简朴的利用也不消上框架了。
性能

我们更多时间是会对界面举行大量的革新,如果用下令式编程,那么我们要写的东西很多,且由于要革新的东西很多,那么肯定是难以写出最优代码(包管界面只革新一次的那种代码),就算能写出来也会很难维护且泯灭了很多大脑!
这里读者就本身看《Vue.js计划与实现》了(否则整个搞出来,这本书作者要举报我了,手动狗头),反正末了的结果就是:

vue既淘汰了用户的心智负担,还能更加利于用户后续维护!
运行时和编译时

这个菜鸟明白的就是,如果一个框架能直接运行,它让你按照它的要求写的东西,那么它就是运行时的框架!如果你想要按照本身的想法写(更自由,但是实在也有限定),那么这个时间框架就要编译你的代码转换成它要求你写的东西,那么其就是编译时+运行时框架!如果它能直接把你按照本身想法写的东西,编译成原生的代码(你想运行的地方可以直接运行),不必要支持任何运行时的东西,那么就是编译时框架!
很显然vue是:编译时+运行时框架!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表