Vue3学习文档

432 阅读2分钟

一. 简介

· 2020年9月18日,Vue.js发布3.0版本

· 源码地址:github.com/vuejs/vue-n…

二.  与vue2对比:

1. 性能提升

· 初次渲染快, 更新渲染快 —— 快

   · 打包大小减少 —— 小

   · 内存大小减少 —— 轻

2. 源码升级

   . 使用Proxy代替Object.defineProperty实现响应式
· 优化虚拟DOM及Diff算法

3. 拥抱Typescript

4. 新特性

   . Composition API(组合API)

     - setup配置

     - ref与reactive

     - watch与watchEffect

     - provide与inject

  . 新的内置组件

     - Fragment

     - Teleport

     - Suspense

  . 其他改变

     - 新的生命周期钩子

     - data 选项应始终被声明为一个函数

     - 移除keyCode支持作为 v-on 的修饰符等

三. 创建Vue3.0工程

  1. 使用 vue-cli 创建

官方文档:cli.vuejs.org/zh/guide/cr…

// 查看@vue/cli版本,确保@vue/cli版本在4.5.0以上

vue --version

// 安装或者升级你的@vue/cli

npm install -g @vue/cli

// 创建项目

vue create vue3_test

// 启动项目

cd vue3_test
npm run serve

2. 使用 vite 创建

官方文档:v3.cn.vuejs.org/guide/insta…

vite官网:vitejs.cn

// 创建工程

npm init vite-app <project-name>

// 进入工程目录

cd <project-name>

// 安装依赖

npm install

// 启动项目

npm run dev.

四. 常用 Composition API

官方文档:www.javascriptc.com/vue3js/api/…

1. 是一个处于生命周期函数 beforeCreate 和 Created 两个钩子函数之前的函数,此时this是undefined

2. 只能是同步的不能是异步的

3. 入参有两个

   - props: 值为对象,包含:组件外部传递过来,且组件内部声明接收了的属性

   - context : 上下文对象, 包含attrs、slots、emit

attrs: 值为对象,包含:组件外部传递过来,但没有在props配置中声明的属性

slots: 收到的插槽内容

      emit: 分发自定义事件的函数

4. 数据、方法等等,均要配置在setup中

5. 有两种返回值

  • 若返回一个对象,则对象中的属性、方法, 在模板中均可以直接使用

  • 若返回一个渲染函数:则可以自定义渲染内容

    import { h, ref, reactive } from 'vue'

    export default { setup() { const readersNumber = ref(0) const book = reactive({ title: 'Vue 3 Guide' }) // 请注意,我们需要在这里显式地暴露ref值 return () => h('div', [readersNumber.value, book.title]) } }