2025年vue2和vue3区别大吗(vue2和vue3区别大吗?)

vue2和vue3区别大吗(vue2和vue3区别大吗?)笔 记 Vue2 Vue3 升级要点笔记 01 MVVM 与 MVC 的区别 MVVM M Model 数据模型 封装应用程序的业务逻辑数据 V View 视图 负责用户界面的展示和呈现 VM ViewModel 视图模型 作为 View 和 Model 的粘合体 负责两者的交互和协作 MVC M Model 数据模型 表示应用程序核心 如数据库 V

大家好,我是讯享网,很高兴认识大家。




讯享网

Vue2-Vue3升级要点笔记!

01

MVVM与MVC的区别

MVVM:

  • M (Model): 数据模型,封装应用程序的业务逻辑数据。
  • V (View): 视图,负责用户界面的展示和呈现。
  • VM (ViewModel): 视图模型,作为View和Model的粘合体,负责两者的交互和协作。

MVC:

  • M (Model): 数据模型,表示应用程序核心(如数据库)。
  • V (View): 视图,显示数据的页面,一般为HTML。
  • C (Controller): 控制器,控制整个业务逻辑,负责处理数据如获取和过滤。

区别:

  • 通信方式: MVVM是双向通信MVC是单向通信
  • 数据逻辑分离: MVVM真正将数据逻辑分离到JS中,MVC中未完全分离。

02

Vue 2与Vue 3的响应式系统差异

Vue 2:

  • 使用Object.defineProperty()进行数据劫持,通过getter和setter追踪数据变化。
  • 无法直接监听数组变化,需特殊处理。

Vue 3:

  • 使用Proxy进行响应式处理,提供更全面的数据监听(包括数组和对象的新增、删除属性)。
  • 性能更优,直接绑定整个对象,省去for in和闭包等。

03

Vue 2与Vue 3的API变化

Vue 2:

  • 使用Options API(选项式),将同等属性的数据定义在一起。
  • 生命周期钩子如beforeCreate, created, beforeMount等。

Vue 3:

  • 引入Composition API(组合式),允许根据功能模块将同一逻辑的变量和方法放在一起。
  • 生命周期钩子有所变化,如beforeCreate和created被setup替代,新增了onBeforeMount, onMounted等。

04

构建工具

Vite作为Vue 3官方推荐构建工具:

  • Vue 3官方强烈推荐使用Vite作为其项目的构建和开发工具。Vite利用原生ES模块导入的特性,提供了极速的冷启动和热模块替换(HMR)能力,大大提升了开发体验。

构建速度优势:

  • 相比于Vue 2中广泛使用的Webpack,Vite在构建速度上有着显著的优势。Webpack在启动时需要打包整个项目,而Vite则直接利用浏览器对ES模块的支持,按需提供模块,因此能够实现更快的启动和模块热更新。

Webpack在Vue 3中的继续使用:

  • 对于已经熟悉Webpack或项目有特殊需求的开发者,Vue 3同样支持在项目中继续使用Webpack作为构建工具。这意味着开发者可以无缝地将现有的Webpack配置和插件迁移到Vue 3项目中,保持项目的连续性和稳定性。

05

Vue 3的优势

更好的性能:

  • 通过Proxy和优化的虚拟DOM算法,Vue 3提供了更快的渲染速度和更好的运行时效率

更灵活的代码组织:

  • Composition API(组合式)允许更灵活地组织代码,提高代码的可读性和可维护性。

更完善的TypeScript支持:

  • Vue 3为TypeScript提供了更好的支持,使得在Vue 3中使用TypeScript编写代码更加容易和可靠。

更多的新特性:

  • 如Fragment、Teleport和Suspense等特性为开发者提供了更多的选择和可能性。

06

Vue组件化开发与通信

组件化开发:

  • UI拆分成多个独立、可复用的部分(即组件)的开发方式。每个组件都包含自己的HTML模板、JavaScript逻辑和CSS样式。
  • 通过组件化,可以构建大型应用,同时保持代码的可读性和可维护性。

通信方式:

  • props向下传值
  • 自定义事件($emit)向上传值
  • Vuex状态管理
  • provide和inject跨层级传值
  • refs父子组件直接访问
  • children访问父/子组件实例
  • listeners父子组件间属性监听和事件监听等。

07

Vue的指令及其用法

Vue指令是Vue模板中特殊的标记,用于在元素的DOM上应用一些特殊的行为。常见的指令有:

  • v-if(条件渲染)
  • v-for(列表渲染)
  • v-bind(绑定属性)
  • v-on(绑定事件监听器)
  • v-model(双向数据绑定)

这些指令都以v-为前缀,后跟指令名称。

08

Vue Router是如何工作的?

Vue Router是Vue.js的官方路由管理器

它和Vue.js深度集成,使得构建单页面应用变得易如反掌。

Vue Router通过映射URL到组件,使得用户可以导航到不同的视图,而不需要重新加载页面。

它监听浏览器的地址变化,并根据路由配置加载对应的组件。

09

Vue如何实现页面间的数据传递?

Vue实现页面间数据传递有多种方式,如:

  • 使用Vue Router的params和query参数
  • Vuex状态管理
  • Pinia状态管理
  • 事件总线(Event Bus)
  • provide和inject
  • localStorage/sessionStorage等。

具体使用哪种方式取决于应用的具体需求。

10

Vue的计算属性和侦听器

计算属性(computed)是基于它们的响应式依赖进行缓存的。只有在它的相关响应式依赖发生改变时才会重新求值。这使得计算属性非常适合在模板中进行复杂逻辑的计算。

侦听器则(watch)允许观察和响应Vue实例上的数据变化,当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

11

Vue的过滤器(filters)是如何工作的?

Vue的过滤器用于文本格式化。

过滤器可以用在两个地方:mustache插值和v-bind表达式。

过滤器应该被添加在JavaScript表达式的尾部,由“管道”符号指示。

过滤器函数总是接收表达式的值(之前的值)作为第一个参数。

过滤器可以串联,即一个过滤器的输出被用作下一个过滤器的输入。

12

Vue的虚拟DOM是什么,如何提升性能

虚拟DOM是一个编程概念,在这个概念里,DOM被抽象成了一棵以JavaScript对象(VNode节点)作为基础的树,用对象属性来描述节点。

当数据发生变化时,Vue会生成一个新的虚拟DOM树,并与旧的虚拟DOM树进行差异比较,从而计算出最小的变更集并应用到实际的DOM上,以此提升性能。

13

Vue的mixin是什么,如何使用?

Vue的mixin是一种分发Vue组件的可复用功能。

一个混入对象可以包含任意组件选项。

当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

混入也可以进行全局注册。使用时,只需要在组件的选项中通过mixins选项声明即可。

02

Vue的nextTick是什么,为什么需要它?

nextTick是一个函数,它延迟一个回调,在下次DOM更新循环结束之后执行延迟回调。

在修改数据之后立即使用它,然后等待DOM更新。

它对于在数据变化后要执行的依赖于DOM的操作非常有用。

因为Vue的DOM更新是异步的,所以当修改数据后,视图并不会立即更新,而是会等待同一事件循环中的所有数据变化完成之后,再统一进行视图更新。

如果需要在数据变化后立即获取更新后的DOM,就需要使用nextTick。

1

END

1

扫二维码|关注我们

文案|排版:马光佳

初审:马光佳

终审:何圳禹

小讯
上一篇 2025-06-07 16:05
下一篇 2025-05-04 09:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/197943.html