为什么要学Vue3? Vue3与Vue2相比有哪些变化?

1.Vue3的现状

  • vue-next2020年9月18日,正式发布vue3.0版本,但由于刚发布周边生态不支持,大多数开发者处于观望
  • 现在主流组件库都已经发布了支持vue3.0的版本,其他生态也在不断完善中,这是趋势
    • element-plus 基于Vue3.0的桌面端组件库
    • vant 3.0版本,有赞前端团队开源移动端组件库
    • ant-design-vue 2.0版本,社区根据蚂蚁antdesign开发

2.Vue3的优点

  • 最火框架,它是国内最火的前端框架之一
  • 性能提升,运行速度是vue2.x的1.5倍左右
  • 体积更小,按需编译体积比vue2.x要更小
  • 类型推断,更好的支持Ts(typescript)这个也是趋势(js的超集)
  • 高级给予,暴露了更底层的API和提供更先进的内置组件
  • 选项APi-----组合API(composition-api),能够更好的组织逻辑,封装逻辑

3.Vue3展望

  • 这是趋势,越来越多的企业将来肯定会升级到Vue3.0
  • 大型项目,由于对Ts的友好越来越多大型项目可以用Vue3.0

4.Vue3.0的一些变化

  • 入口文件的变化

    • Vue 的实例化方式发生变化:基于createApp方法进行实例化

    • router和store采用use方法进行配置

    • vue3的典型API风格:按需导入,为了提升打包的性能

  • 根组件结构的变化

    • vue3中组件的模板可以没有根节点 ( vue2的模板必须有根节点)

  • 路由模块的变化

    • 创建路由实例对象采用createRouter方法,是Vue3的典型风格

    • 采用hash和history的方式有变化

      • vue2采用mode选项:hash/history

      • vue3采用方法:createWebHashHistory() / createWebHistory()

  • Vuex模块的变化

    • 创建store对象采用createStore方法,而不是new

  • 生命周期函数的变化

    • vue2的生命周期函数 

      •  beforeCreate  

      • created 

      • beforeMount 

      • mounted 

      • beforeUpdate         

      • updated 

      • beforeDestroy 

      • destroyed

    • vue3的生命周期函数

      •  setup 创建实例前 

      • onBeforeMount 挂载DOM前 

      • onMounted 挂载DOM后

      •  onBeforeUpdate 更新组件前

      • onUpdated 更新组件后 

      • onBeforeUnmount 卸载销毁前 

      • onUnmounted 卸载销毁后

    • 去掉了两个函数: beforeCreate 和 created 添加了setup

    • 方法名称发生变化:方法名称前面多了个on,中间是驼峰式的

    • 同一个生命周期可以触发多次

    • 卸载组件的生命周期变化:onBeforeUnmount   onUnmounted 

  • 代码的组织形式以功能为单位

setup函数

Options API 和 Composition API

Options API 约定:

我们需要在 props 里面设置接收参数

在 data 里面设置变量

在 computed 里面设置计算属性

在 watch 里面设置监听属性

在 methods 里面设置事件方法

你会发现 Options APi 都约定了我们该在哪个位置做什么事,这反倒在一定程度上也强制我们进行了代码分割。

现在用 Composition API,不再这么约定了,于是乎,代码组织非常灵活,我们的控制代码写在 setup 里面即可

  • 使用setup函数

  • setup的基本使用

    • setup选项是实现组合API的基础

    • 触发的时机在beforeCreate之前

    • Vue3中beforCreate / created生命周期函数已经废弃了,其实被setup替代了

    • 此时无法访问this,因为组件实例化此时尚未创建

    • setup的返回值用于给模板提供数据和方法

    • 模板依然可以从data中获取数据,但是不推荐使用data了

组合API数据响应式的方法

1.reactive方法

  1. setup默认返回的普通数据不是响应式的
  2. 如果希望数据是响应式的,有一种做法就是给数据包裹reactive函数
  3. reactive中的对象属性如果重新赋值会失去响应能力

2.toRef方法

 它可以把对象中的单个属性取出并且保证响应式能力

const meg =toRef( obj,'msg')

3.toRefs方法

 它可以批量转换对象中的属性为独立的响应式数据

const { msg, info }  =  toRefs ( obj )

4.ref方法

1.主要用于定义基本类型的数据  ( 也可以是对象或数组 )  并且保证响应能力 

        const  cont  =  ref ( 0 )       定义一个cont值为0,并且具有相应能力

2.ref定义的数据,在  js  中操作时需要通过value属性进行操作,但是在模板中访问不需要value

数据响应式的总结

  1. setup中直接返回的普通数据不是响应式的
  2. 通过reactive包裹对象可以成为响应式数据
  3. 为了简化对象的访问 ( 去掉前缀 obj. ),可以使用toRef进行优化
  4. 为了获取对象中的多个属性,可以使用toRefs进一步简化
  5. 如果时简单数据类型,其实使用ref定义更加合适

组合API计算属性computed

  1. 计算属性可以直接读取或者修改
  2. 如果要实现计算属性的修改操作,那么computed的实参应该是对象
    1. 读取数据触发get方法
    2. 修改数据触发set方法,set函数的形参就是你赋给他的值

       

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Vue 3相比Vue 2提升了更快的渲染速度,更好的类型安全性,更灵活的组件通信机制,更强大的路由系统,更容易的服务器端渲染,更全面的 TypeScript 支持,更优化的代码结构,以及新的调试工具。 ### 回答2: Vue 3相比Vue 2在以下几个方面有了明显的提升。 1. 性能提升:Vue 3通过优化虚拟DOM的算法和编译器,显著提高了性能。新的响应式系统使用了基于Proxy的数据劫持,比Vue 2的Object.defineProperty更高效,能够更好地追踪数据的变化。 2. 打包体积减小:Vue 3移除了一些过时的API,整个库的打包体积比Vue 2减小了约30%,减轻了网络传输负担,提速了页面加载速度。 3. 组合式API:Vue 3引入了组合式API,使得组件逻辑可以更加清晰地组织和重用。开发者可以通过API自由组合逻辑代码,更好地划分功能,提高了代码的可维护性。 4. TypeScript支持:Vue 3对TypeScript的支持更加友好,大部分核心API都有了相应的类型声明,开发者可以更早地发现潜在的错误,并且编辑器能够提供更好的代码提示和补全。 5. 更好的升级途径:Vue 3可以与Vue 2共存,并提供了更好的升级途径。Vue 3提供了一个逐步升级的工具,帮助开发者平滑过渡到新版本,从而降低了升级的风险。 总的来说,Vue 3在性能、打包体积、API设计、TypeScript支持和升级途径等方面都有了明显的提升,使得开发者能够更加高效、舒适地使用Vue进行开发。 ### 回答3: Vue 3相比Vue 2在性能、体积、使用体验和开发者工具等方面有了很多提升。 首先是性能方面的提升。Vue 3通过使用Proxy代理对象替代了Vue 2中的Object.defineProperty方法,使得响应式系统的性能得到了显著提升。此外,Vue 3还引入了静态树优化和组件级别的缓存优化,可以减少不必要的渲染操作,提高页面性能。 其次是体积方面的提升。Vue 3采用了更好的Tree-Shaking机制和模块化设计,可以让开发者只引入所需的功能代码,从而减小项目的体积。这使得Vue 3在移动端和网络环境较差的情况下有更好的表现。 再者,Vue 3在使用体验方面也有了很多提升。Vue 3引入了Composition API,提供了更加灵活的组合式编程方式,使得代码逻辑更加清晰和可维护。此外,Vue 3还提供了更好的TypeScript支持,让开发者在开发过程中能够更快速、更准确地发现错误。 最后,开发者工具方面也有了很多改进。Vue 3的开发者工具更加强大和易用,提供了更多的工具和功能,如更好的性能监控和调试工具等,可以帮助开发者更高效地进行开发和调试工作。 总结来说,Vue 3相比Vue 2在性能、体积、使用体验和开发者工具等方面都有了明显的提升,使得开发者能够更加高效、更加愉快地开发Vue应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ling…

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值