从Vue2到Vue3【零】——Vue3简介

系列文章目录

内容链接
从Vue2到Vue3【零】Vue3简介及创建

文章目录

  • 系列文章目录
  • 前言
  • 一、Vue3的发布带来了什么
    • 1.1 性能提升
    • 1.2 源码升级
    • 1.3 支持TypeScript
    • 1.4 新特性
    • 1.5 支持 vue3 的UI组件库
  • 二、创建Vue3.0工程
    • 2.1 什么是Vite
    • 2.2 利用Vite创建Vue3.0工程
    • 2.3 利用vue-cli脚手架创建Vue3.0工程
  • 三、 工程结构变化
    • 3.1 App.vue
    • 3.2 main.js
  • 四、开发者工具
    • 4.1 安装开发者工具
  • 总结


前言

Vue.js作为一种流行的JavaScript框架已经被广泛应用于前端开发中。随着Vue 3的发布,这个框架迎来了一系列的改变和升级。本文将带您深入了解从Vue 2到Vue 3的这段迁移之旅,探索新版本所引入的变化和新特性。无论您是已经使用过Vue 2的开发者,还是新手,本文都将给您带来有价值的信息和实用的迁移指南。让我们一起领略Vue 3的新时代


一、Vue3的发布带来了什么

1.1 性能提升

  • 打包大小减少41%
  • 初次渲染快55%, 更新渲染快133%
  • 内存减少54%

1.2 源码升级

  • 使用Proxy代替defineProperty实现响应式
  • 重写虚拟DOM的实现和Tree-Shaking

1.3 支持TypeScript

  • 类型安全
    TypeScript是一种静态类型的超集,它添加了类型系统到JavaScript中,可以在开发阶段捕获潜在的错误。使用TypeScript,您可以为Vue 3的组件、props、数据和方法等定义明确的类型,从而提供更好的代码可读性、可维护性和可靠性。在编译时进行类型检查有助于减少运行时错误,并提供更好的开发体验

  • 代码提示和自动补全
    TypeScript对代码编辑器的支持非常完善,包括强大的代码提示和自动补全功能。通过使用TypeScript编写Vue 3的代码,您可以获得更准确的代码提示,提高开发效率并降低出错的可能性

  • 易于重构和维护
    类型系统使得重构和维护Vue 3应用程序变得更加容易。由于有明确的类型定义,编译器可以帮助您找到潜在的问题点,并在进行重构时提供及时的反馈。这使得重构代码成为一项轻松而安全的操作,同时也降低了引入错误的风险

  • 生态系统支持
    TypeScript在JavaScript社区中广受欢迎,已经成为许多项目的首选语言。Vue 3对TypeScript的支持使其能够更好地与现有的TypeScript库和工具集成,如编辑器、构建工具、测试框架等。这为Vue 3开发者带来了更丰富和强大的生态系统支持

总的来说,Vue 3与TypeScript的结合为开发者提供了更好的开发体验、更高的代码质量和更强大的生态系统支持。无论是初学者还是有经验的开发者,使用TypeScript来开发Vue 3应用程序都将为您带来诸多好处

1.4 新特性

  • Composition API(组合API)
    • setup配置
    • ref与reactive
    • watch与watchEffect
    • provide与inject
  • 新的内置组件
    • Fragment
    • Teleport
    • Suspense
  • 其他改变
    • 新的生命周期钩子
    • data 选项应始终被声明为一个函数
    • 移除keyCode支持作为 v-on 的修饰符

1.5 支持 vue3 的UI组件库

  • element-plus
    element-plus (PC组件库)
    一套为开发者、设计师和产品经理准备的基于 Vue 3.0 的桌面端组件库。

  • vant
    Vant (轻量、可靠的移动端 Vue 组件库)
    Vant 是有赞前端团队开源的移动端组件库,于 2016 年开源,已持续维护 4 年时间。
    目前 Vant 已完成了对 Vue 3.0 的适配工作,并发布了 Vant 3.0 版本

  • ant-design-vue
    ant-design-vue (PC组件库)
    ant-design-vue 是 Ant Design 的 Vue 实现,组件的风格与 Ant Design 保持同步

二、创建Vue3.0工程

2.1 什么是Vite

Vite是一个新型的构建工具,与传统的Webpack相比具有以下几个优势:

  • 快速的开发启动速度: Vite使用了ES模块的原生支持,通过利用浏览器的原生ES模块加载能力,实现了快速的冷启动速度。在开发模式下,Vite无需打包和构建整个应用程序,而是通过即时编译和按需加载的方式,只编译和加载当前正在编辑的文件,从而提供了非常快速的开发启动速度。

  • 更小的构建包体积: 由于Vite在开发模式下不需要打包整个应用程序,所以构建出来的包体积更小。这对于前端性能和加载速度非常重要,尤其对于大型应用程序来说,可以减少用户的等待时间。

  • 原生支持ES模块: Vite原生支持ES模块,可以直接在浏览器中运行原生的ES模块,而无需通过打包工具进行转换。这使得开发者可以直接使用ES模块的语法和功能,提高了开发效率并减少了构建过程中的一些问题。

  • 按需编译和热模块替换: Vite只编译和加载当前正在编辑的文件,而不是整个应用程序。这意味着在开发过程中,只有修改的文件会被重新编译,从而加快了热模块替换的速度,使开发者能够更快地看到修改的效果。

  • 更好的开发体验: Vite支持在开发过程中使用原生的浏览器开发工具,如浏览器的控制台、调试器和网络面板等。这使得开发者可以更方便地进行调试和性能优化,提供了更好的开发体验。

2.2 利用Vite创建Vue3.0工程

创建

npm init vite-app <project-name>
cd <project-name>
npm i

启动

npm run dev

初始化方法不止一种,大家可以参考Vite官网 Vite 官方中文文档

2.3 利用vue-cli脚手架创建Vue3.0工程

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

vue -V

创建

vue create vue3_test

启动

cd vue_test
npm run serve

三、 工程结构变化

3.1 App.vue

vue3组件不再需要根标签

<template><div><a href="https://vitejs.dev" target="_blank"><img src="/vite.svg" class="logo" alt="Vite logo" /></a><a href="https://vuejs.org/" target="_blank"><img src="./assets/vue.svg" class="logo vue" alt="Vue logo" /></a></div><HelloWorld msg="Vite + Vue" />
</template>

3.2 main.js

相较于Vue2,不再引入Vue的构造函数,代替它的是 createApp函数
挂载方式也发送变化

// import Vue from 'vue'    vue2中
//引入的不再是Vue构造函数了,引入的是一个名为createApp的工厂函数
import { createApp } from 'vue'
import App from './App.vue'// new Vue({
//  el: '#app',
//  render: h => h(App)
//})   vue2中//创建应用实例对象——app(类似于之前Vue2中的vm,但app比vm更“轻”)
const app = createApp(App)//挂载
app.mount('#app')

四、开发者工具

4.1 安装开发者工具

vue2和vue3的开发者工具有区别!所以要重新安装至扩展中

这里给上网盘链接
链接:https://pan.baidu.com/s/1JLMScyyc6qpVn7KHYeNjhA?pwd=qdbc
提取码:qdbc

先下载到某个文件夹里,然后打开浏览器,点击浏览器右上角的三个点,选择扩展–>管理扩展
打开开发人员模式
在这里插入图片描述
将之前百度网盘下载的拖动进浏览器安装就好了!


总结

通过本专栏的学习,您会对Vue 3有了更深入的了解,并且具备了从Vue 2迁移到Vue 3的知识和技能。无论您是正在考虑升级现有项目,还是准备开始一个新的Vue项目,Vue 3的升级将为您带来更好的开发体验和更高的性能。随着Vue框架的不断演进,我们可以期待更多令人兴奋和创新的功能的到来。让我们一起迎接Vue框架的未来吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28196.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中main()函数和命令行参数介绍

C中main()函数和命令行参数介绍 在C中&#xff0c;main()函数是程序的入口点&#xff0c;它是一个特殊的函数&#xff0c;在程序开始执行时被首先调用&#xff0c;也是程序结束时的最后一个被执行的函数。main() 函数的类型始终为 int&#xff0c;根据C标准&#xff0c;main() …

深度学习trick

本次Tricks主要面向于深度学习中计算机视觉方向的研究&#xff0c;分为数据增广方法、训练技巧&#xff0c;参数调节这三个方面进行深入的分析。内容有一部分是基于openmmlab的mmdet和mmseg两个框架上的成熟应用案例进行详细阐述。 首先是数据增广的tricks&#xff1a; 0、Fli…

概率论的学习和整理18:为什么 P(至少成功1次) = Σ P(几何分布) ,总结几何分布和连续失败概率的关系,二项分布和累计成功k次的关系

目录 1 先说结论&#xff1a; 2 Σ几何分布的P(xn) P(n次试验至少成功1次) 2.1 几何分布的概率 2.2 这个是可以证明的&#xff0c;下面是推导过程 2.3 怎么理解呢&#xff1f; 3 另外&#xff0c;P(累计成功k次) ΣP(成功k次的二项分布) 3.1 成功k次的概率 和 累计成…

【NLP】transformers的位置编码

一、背景 本文是“实现的变压器”系列的第二篇。它从头开始引入位置编码。然后,它

《3.linux应用编程和网络编程-第9部分-3.9.linux网络编程实践》3.9.6_7.soekct实践编程1_2

概念&#xff1a;端口号&#xff0c;实质就是一个数字编号&#xff0c;用来在我们一台主机中&#xff08;主机的操作系统中&#xff09;唯一的标识一个能上网的进程。端口号和IP地址一起会被打包到当前进程发出或者接收到的每一个数据包中。每一个数据包将来在网络上传递的时候…

Ubuntu学习笔记(二)——文件属性与权限

文章目录 前言一、用户与用户组1.用户&#xff08;文件拥有者&#xff09;2.用户组3.其他人 二、Linux用户身份与用户组记录文件1. /etc/passwd2. /etc/shadow3. /etc/group 三、文件属性与权限1. 查看文件属性的方法&#xff08;ls&#xff09;2.文件属性详细介绍2.1 权限2.2 …

jib进行本地打包,并上传本地镜像仓库

使用 Jib 进行本地打包和上传到本地镜像仓库是一种方便的方式&#xff0c;而无需编写 Dockerfile。Jib 是一个开源的 Java 容器镜像构建工具&#xff0c;它可以直接将 Java 项目打包为镜像&#xff0c;并将其推送到容器镜像仓库。 gradle 进行jib的配置 import java.time.Zon…

msvcp140.dll丢失怎么弄?分享几个最靠谱的解决方法

当你在运行某个程序或游戏时&#xff0c;突然收到一个错误提示&#xff0c;提示你的计算机缺少msvcp140.dll文件。这意味着你的计算机中缺少一个重要的系统文件&#xff0c;可能会导致程序无法正常运行。下面是一些详细的解决方法&#xff0c;帮助你解决msvcp140.dll丢失的问题…

Windows与Linux取证分析

目录 一、电子数据取证基本概念 1.电子取证学 2.常规取证 3.洛卡德物质交换原理 4.电子数据范围 5.电子数据取证的概念和目的 6.电子数据取证过程 二、Linux系统取证 1.基本信息获取 &#xff08;1&#xff09;获取系统基础信息 &#xff08;2&#xff09;用户/用户…

Windows安装Oh-My-Posh美化Powershell

Windows Terminal&#xff1a;https://www.microsoft.com/store/productId/9N0DX20HK701 最新Powershell下载&#xff1a;https://github.com/PowerShell/PowerShell/releases Oh-My-Posh官网&#xff1a;https://ohmyposh.dev/ Nerd字体下载&#xff1a;https://www.nerdfonts…

ubuntu20.04配置vscode

下载&#xff1a; https://az764295.vo.msecnd.net/stable/660393deaaa6d1996740ff4880f1bad43768c814/code_1.80.0-1688479026_amd64.debhttps://az764295.vo.msecnd.net/stable/660393deaaa6d1996740ff4880f1bad43768c814/code_1.80.0-1688479026_amd64.deb 安装&#xff1a…

Mysql数据库之事务

目录 一、事务的概念 二、事务的ACID特点 1.原子性&#xff08;Atomicity&#xff09; 2.一致性&#xff08;Consistency&#xff09; 3.隔离性&#xff08;lsolation&#xff09; 4.持久性&#xff08;Durability) 三、并发访问表的一致性问题和事务的隔离级别 1.并发访…