从Vue2到Vue3【零】——Vue3简介及创建

news2024/11/19 18:37:34

系列文章目录

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

文章目录

  • 系列文章目录
  • 前言
  • 一、Vue3的发布带来了什么
    • 1.1 性能提升
    • 1.2 源码升级
    • 1.3 支持TypeScript
    • 1.4 新特性
  • 二、创建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 的修饰符

二、创建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中
import { createApp } from 'vue'

import './style.css'
import App from './App.vue'

// new Vue({
//  el: '#app',
//  render: h => h(App)
//})   vue2中
createApp(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.coloradmin.cn/o/755995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iPad远控Windows解决方案

最近入手了一台iPad&#xff0c;但我不想让它沦为爱奇艺的工具&#xff0c;遂考虑如何在iPad上获得桌面级Windows的生产力。主要还是之前背着电脑出远门太累了&#xff0c;这也是促成我买iPad的重要因素。 一种方案就是通过远程控制&#xff0c;在iPad上远程操作自己的电脑&am…

【技能实训】DMS数据挖掘项目-Day10

文章目录 任务10【任务10.1.1】安装Mysql数据库&#xff0c;创建项目所需的数据库dms_学号、表及用户名、密码等&#xff0c;并搭建数据访问的基础环境(JDBC)【任务10.1.2】加载JDBC包【任务10.1.3】编写mysql.properties文件【任务10.1.4】编写Config类【任务10.2】编写访问数…

LinkedBlockingQueue 原理

目录 基本的入队出队 加锁分析 put 操作 take 操作 性能比较 LinkedBlockingQueue 是 Java 中用于实现线程安全队列的类。它是一个基于链接节点的阻塞队列&#xff0c;并且在队列为空时&#xff0c;获取元素的线程会阻塞;当队列满时&#xff0c;存储元素的线程会阻塞。Link…

re学习(16)[网鼎杯 2020 青龙组]singal1(魔法库:angr)

下载地址&#xff1a; BUUCTF在线评测 angr用法参考视频&#xff1a; angr符号执行练习 00_angr_find_哔哩哔哩_bilibili 本题其实也是可以通过静态分析得到的&#xff0c;详细地址请观看&#xff1a;【CTF&WP&BUUCTF】网鼎杯2020青龙组Singal_哔哩哔哩_bilibili …

Spring Security OAuth 2.0

1 概念 OAuth 2.0 到底是什么呢&#xff1f;我们先从字面上来分析下。OAuth 2.0 一词中的字母 “O” 是 Open 的简称&#xff0c;表示 “开放” &#xff0c; “Auth” 表示 “授权”&#xff0c;连在一起就表示 “开放授权”。 OAuth 2.0是一种授权框架&#xff0c;提供了一…

Linux下做性能分析5:Amdahl模型

[前言] 前一个Blog我们使用了一个叫cs的程序作为例子&#xff0c;那个程序是我为了举例子临时写的&#xff0c;这个代码我共享在这里&#xff1a;GitHub - nekin2012/btest。后面我要再举例子的话&#xff0c;就都加到这个地方来。由于这些代码没有经过最基本的软件质量保证工…

Visual Studio 自定义的颜色字体不生效

问题描述&#xff1a; 1、dll1中引用第三方库的类不识别&#xff0c;颜色黑白&#xff0c;自定义颜色不生效&#xff1b;定义的是结构体 2、在dll2引用另一个dll1中的结构体。结构体不识别&#xff0c;今天成员函数cpp中自定义颜色不生效。 问题解决方式&#xff1a; 全部清…

基于linux下的高并发服务器开发(第一章)- GDB调试(4)1.16

05 / GDB命令-调试命令 在第8行打上断点和bubbleSort打上断点 在第16行也打上断点&#xff0c;然后i b查看断点 执行run&#xff0c;停在第一个断点&#xff0c;这一行还没有执行 接下来按c继续执行&#xff0c;停在了bubbleSort list bubble.cpp:bubbleSort

【C】动态内存管理详解

动态内存管理 C/C内存开辟区域为什么存在动态内存分配&#xff1f; 动态内存函数的介绍&#xff08;在头文件stdlib.h中&#xff09;mallocfreecallocrealloc 常见的动态内存的错误对NULL解引用操作对动态开辟的空间进行越界访问对非动态开辟的空间进行free释放使用free释放动态…

探索Python异常:让程序不再崩溃!

文章目录 前言什么是异常捕获异常基本语法捕获指定类型异常捕获多个指定类型的异常捕获异常描述信息捕获所有异常elsefinally 异常的嵌套自定义异常结语 前言 在编程的世界中&#xff0c;我们常常会面对各种各样的错误和异常情况。尤其当我们使用Python这样的高级编程语言时&a…

4. 设计测试用例 (一) 等价类 边界值 判定表

目录 1. 设计测试用例的基本要素 1.1 测试用例概念 1.2 测试用例要素 1.3 测试用例的重要性 2. 测试用例设计方法 2.1 基于需求设计测试用例 步骤 2.2 练习设计测试用例 2.3 具体设计测试用例方法 2.3.1 等价类 设计测试用例步骤 举例 2.3.2 边界值 设计测试用例…

PowerDesigner 数据库建模使用详解

目录 一、前言 二、PowerDesigner概述 2.1 PowerDesigner核心能力 2.1.1 集成多种建模能力 2.1.2 自动生产代码能力 2.1.3 强大的逆向工程能力 2.1.4 可扩展的企业库解决方案 2.2 PowerDesigner常用的几种模型 2.2.1 概念模型 2.2.2 逻辑数据模型 2.2.3 物理模型 2.2…

综合能源系统(2)——综合能源系统典型应用场景

综合能源系统关键技术与典型案例  何泽家&#xff0c;李德智主编 根据空间分布范围特征&#xff0c;综合能源系统可大致划分为楼宇级、园区级以及区域级。楼宇级综合能源系统适用于办公楼、家庭、商场等单一主体区域&#xff0c;投资、建设和运营模式较为简单&#xff0c;技术…

arm学习stm32芯片学习方波启动蜂鸣器,马达,风扇,裸机开发,soc

main.c #include "pwm.h" extern void printf(const char *fmt, ...); void delay_ms(int ms) {int i,j;for(i 0; i < ms;i)for (j 0; j < 1800; j); } int main() {//蜂鸣器初始化hal_pwm_beep_init1();//马达hal_pwm_motor_init1();//风扇hal_pwm_blower_…

基于Vue3+LeaderLine实现画线测距及线条自由调整

先看下效果&#xff1a;我们画线后可以根据比例关系自动计算距离&#xff0c;并且线条不对可以自由调整 <template><div id"image-detail"><el-image :src"myImageUrl" style"height: auto; width: 800px;" fit"scale-dow…

Django实现接口自动化平台(十)自定义action names【持续更新中】

相关文章&#xff1a; Django实现接口自动化平台&#xff08;九&#xff09;环境envs序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 深入理解DRF中的Mixin类_做测试的喵酱的博客-CSDN博客 python中Mixin类的使用_做测试的喵酱的博客-CSDN博客 本章是项目的一…

高数笔记5(第一章函数 极限 连续-第三节-函数的连续性)

目录 第三节 函数的连续性&#xff08;1&#xff09;函数的连续性例1&#xff08;补充定义&#xff0c;函数连续&#xff09;例4&#xff08;无穷小*有界量&#xff09;例6 &#xff08;补充定义&#xff0c;三角函数的代换的妙用&#xff09; &#xff08;2&#xff09;连续函…

7.带你入门matlab偏斜度和峰度(matlab程序)

峰度&#xff08;Kurtosis&#xff09;与偏态&#xff08;Skewness&#xff09;就是量测数据正态分布特性的两个指标。 峰度&#xff08;Kurtosis&#xff09; 峰度衡量数据分布的平坦度&#xff08;flatness&#xff09;&#xff0c;即数据取值分布形态陡缓程度的统计量。它…

C#,数值计算——柯西分布(Cauchy distribution)的计算方法与源程序

柯西分布&#xff08;Cauchy distribution&#xff09;简介 The Cauchy distribution, also called the Lorentzian distribution or Lorentz distribution, is a continuous distribution describing resonance behavior. It also describes the distribution of horizontal …

ASEMI快恢复二极管MUR2080CTR资料,MUR2080CTR参数

编辑-Z MUR2080CTR是一种高压、超快恢复整流二极管。它通常用于各种电子应用&#xff0c;如电源、逆变器和电机控制电路。该二极管设计用于处理高压和高频开关&#xff0c;适用于需要快速高效整流的应用。 MUR2080CTR二极管的一个关键特性是其超快的恢复时间。这意味着它可以非…