Vue3的新特性

简介: Vue3的新特性

Vue3

为什么要使用 Vue3


1 . 更好的 逻辑复用 与 代码组织 ( composition 组合式 api )


   Vue3 之前使用的是 optionsAPI(选项式API)

   Vue3 使用的是 compositionAPI(组合式API)

   优点 : 代码组织更方便了, 逻辑复用更方便了 非常利于维护!!


2 . 更好的 检测类型 ( 类型推导 Typescript 支持 )


   类型推导 : 就是在没有明确指出类型的变量,TypeScript 编译器会自动推测变量的类型。

   Vue3 源码用 TypeScript 写的 ( TypeScript 可以让代码更加稳定, 更好的检测类型! )


Vue3 新特性


1 . 数据响应式 原理重新实现 ( ES6 的 proxy 替代了 ES5 的 Object.defineProperty)


   解决了对象、数组更新后的检测, 大大优化了响应式监听的性能

   原来检测对象属性的变化, 需要一个个对属性递归监听, proxy 可以直接对整个对象劫持


2 . 虚拟 DOM - 新算法 (更快 更小)


3 . 提供了 composition api, 可以更好的逻辑复用


4 . template 模板可以有多个根元素


5 . 源码用 typescript 重写, 有更好的 类型推导 (类型检测更为严格, 更稳定)


小结: vue3 性能更高, 体积更小, 更利于复用, 代码维护更方便

Composition API

options API


vue2 采用的就是 optionsAPI


优点 : 易于学习和使用, 每个代码有着明确的位置


   例如 : 数据放 data 中, 方法放 methods 中


缺点 : 相似的逻辑, 不容易复用, 在大项目中尤为明显


注意 : 虽然 optionsAPI 可以通过 mixins 提取相同的逻辑, 但是并不好维护

Composition API


vue3 新增的就是 compositionAPI


   compositionAPI 是基于 逻辑功能 组织代码的, 一个功能 api 相关放到一起


   即使项目大了, 功能多了, 也能快速定位功能相关的 api


   大大的提升了 代码可读性 和 可维护性


注意 : vue3 推荐使用 composition API, 也保留了 options API


   即就算不用 composition API, 用 vue2 的写法也 完全兼容


setup 函数


composition 的使用, 需要配置一个 setup 函数


setup 函数特点


   setup 函数是一个新的组件选项, 作为组件中 compositionAPI 的起点

   从生命周期角度来看, setup 会在 beforeCreate 钩子函数之前执行

   在 template 模版中需要使用的数据和函数,需要在 setup 返回

使用:

<script>
export default {
  setup () {
    console.log('setup执行了')
    console.log(this) // undefined
    // 定义数据和函数
    const msg = 'hi vue3'
    const say = () => {
      console.log(msg)
    }
    return { msg , say}
  },
  beforeCreate() {
    console.log('beforeCreate执行了')
    console.log(this)
  }
}
</script>

template 中使用:

<template>
  <div>
    <h1 @click="say()">{{msg}}</h1>
  </div>
</template>

注意 : setup 中不能使用 this, this 指向 undefined


相关文章
|
16天前
|
存储 JavaScript 前端开发
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
【10月更文挑战第21天】 vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
|
13天前
|
JavaScript 前端开发 开发者
Vue 3中的Proxy
【10月更文挑战第23天】Vue 3中的`Proxy`为响应式系统带来了更强大、更灵活的功能,解决了Vue 2中响应式系统的一些局限性,同时在性能方面也有一定的提升,为开发者提供了更好的开发体验和性能保障。
30 7
|
14天前
|
前端开发 数据库
芋道框架审批流如何实现(Cloud+Vue3)
芋道框架审批流如何实现(Cloud+Vue3)
36 3
|
13天前
|
JavaScript 数据管理 Java
在 Vue 3 中使用 Proxy 实现数据双向绑定的性能如何?
【10月更文挑战第23天】Vue 3中使用Proxy实现数据双向绑定在多个方面都带来了性能的提升,从更高效的响应式追踪、更好的初始化性能、对数组操作的优化到更优的内存管理等,使得Vue 3在处理复杂的应用场景和大量数据时能够更加高效和稳定地运行。
33 1
|
13天前
|
JavaScript 开发者
在 Vue 3 中使用 Proxy 实现数据的双向绑定
【10月更文挑战第23天】Vue 3利用 `Proxy` 实现了数据的双向绑定,无论是使用内置的指令如 `v-model`,还是通过自定义事件或自定义指令,都能够方便地实现数据与视图之间的双向交互,满足不同场景下的开发需求。
34 1
|
15天前
|
前端开发 JavaScript
简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
|
16天前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
19天前
|
JavaScript API
vue3知识点:ref函数
vue3知识点:ref函数
29 2
|
19天前
|
API
vue3知识点:reactive函数
vue3知识点:reactive函数
24 1
|
19天前
|
JavaScript 前端开发 API
vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
23 0