Vue 3 入门教程 - 1、基础概念与环境搭建

一、Vue 3 简介

Vue.js 是一款流行的 JavaScript 前端框架,用于构建用户界面。Vue 3 作为其最新版本,带来了诸多令人瞩目的新特性与性能优化,为开发者打造了更为高效、灵活的开发体验。

1.1 Vue 3 的优势

  • 性能提升:对虚拟 DOM 进行了重构,优化了编译器和运行时性能,在大型应用中渲染速度大幅提升。同时支持 Tree - Shaking,有效减小了打包体积。
  • API 革新:引入全新的 Composition API,使开发者能够以更灵活、可复用的方式组织逻辑,显著提升代码的可读性与维护性。
  • 更好的 TypeScript 支持:增强了类型推断能力,与 TypeScript 兼容性更佳,为使用 TypeScript 进行开发的项目提供了更友好的环境。

1.2 Vue 3 与 Vue 2 的区别

  • 响应式系统:Vue 2 使用 Object.defineProperty 来实现响应式,而 Vue 3 采用 ES6 的 Proxy 对象。Proxy 能更高效且完整地进行对象代理,可深度监听对象变化,包括属性的添加和删除。
  • API 风格:Vue 2 主要采用选项式 API(Options API),而 Vue 3 引入的组合式 API(Composition API)提供了一种全新的组织代码逻辑的方式,更便于逻辑复用,尤其适用于大型应用中组件间的状态管理和逻辑共享。
  • 生命周期钩子:Vue 3 中生命周期钩子名称前缀增加了 on,例如 onMounted,并且在 Composition API 中以函数形式使用,需要导入对应的生命周期钩子。同时,Vue 3 移除了 beforeDestroy,改为 onBeforeUnmount,新增了 unmounted 对应 Vue 2 的 destroyed 钩子。

二、环境搭建

在开始使用 Vue 3 进行开发之前,我们需要先搭建好开发环境。主要包括安装 Node.js 和创建 Vue 项目。

2.1 安装 Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许我们在服务器端运行 JavaScript 代码。Vue 项目的创建和运行依赖于 Node.js。

前往 Node.js 官方网站 下载并安装适合你操作系统的版本。安装完成后,打开终端或命令提示符,输入以下命令检查是否安装成功:

node -vnpm -v

这两条命令会分别显示 Node.js 和 npm(Node.js 的包管理器)的版本号。如果成功显示版本号,则说明安装成功。

2.2 创建 Vue 项目

2.2.1 使用 create - vue 创建项目

create - vue 是 Vue 官方新的脚手架工具,底层基于 vite(下一代前端工具链),能为开发提供极速响应。

确保你已经安装了 16.0 或更高版本的 Node.js。打开终端,进入你想要创建项目的目录,执行以下命令:

npm create vue@latest

执行该命令后,会出现一系列交互式选项:

  • 请输入项目名称:输入你想要的项目名称,例如 my - vue3 - project。
  • 是否使用 TypeScript 语法:如果你熟悉 TypeScript 或者项目需要,可以选择 Yes,否则选择 No。
  • 是否启用 JSX 支持:如果项目中需要使用 JSX 语法(一种类似 XML 的 JavaScript 扩展语法),选择 Yes,否则选择 No。
  • 是否引入 Vue Router 进行单页面应用开发:如果项目需要路由功能(例如实现页面之间的跳转),选择 Yes,否则选择 No。
  • 是否引入 Pinia 用于状态管理:如果项目需要进行状态管理(例如管理全局状态),选择 Yes,否则选择 No。
  • 是否引入 Vitest 用于单元测试:如果项目需要进行单元测试,选择 Yes,否则选择 No。
  • 是否要引入一款端到端(End to End)测试工具:根据项目测试需求选择是否引入端到端测试工具。
  • 是否引入 ESLint 用于代码质量检测:如果希望对代码进行质量检测和规范,选择 Yes,否则选择 No。

按照需求选择完成后,等待项目创建完成。创建完成后,进入项目目录:

cd my - vue3 - project

然后安装项目依赖:

npm install

最后,启动项目:

npm run dev

启动成功后,在浏览器中访问 http://localhost:5173/,你将看到 Vue 项目的默认页面。

2.2.2 使用 Vue CLI 创建项目(了解)

Vue CLI 是 Vue.js 官方的脚手架工具,虽然 create - vue 是官方新推荐的方式,但 Vue CLI 仍然被广泛使用。如果你之前安装过旧版本的 Vue CLI,可能需要先卸载:

npm uninstall -g vue - cli

然后全局安装 Vue CLI:

npm install -g @vue/cli

安装完成后,在终端进入你想要创建项目的目录,执行以下命令创建一个新的 Vue 3 项目:

vue create my - vue3 - project

在创建过程中,你可以选择默认的配置(babel、eslint 等),也可以手动选择需要的特性,如 Vue Router(路由管理)、Vuex(状态管理)等。创建完成后,同样进入项目目录,安装依赖并启动项目:

cd my - vue3 - project
npm install
npm run serve

启动成功后,在浏览器中访问 http://localhost:8080/,即可看到项目页面。

2.3 Vue 3 项目结构

以使用 create - vue 创建的项目为例,其目录结构大致如下:

my - vue3 - project/

├── node_modules/ # 项目依赖的第三方包

├── public/ # 公共静态资源

│ ├── assets/ # 静态资源,如图片、字体等

│ ├── index.html # 应用的 HTML 模板

├── src/ # 项目源代码

│ ├── assets/ # 项目内的静态资源

│ ├── components/ # 组件目录

│ │ ├── HelloWorld.vue # 示例组件

│ ├── main.js # 入口文件,初始化 Vue 实例

│ ├── App.vue # 根组件

├── package.json # 项目依赖和配置

├── package - lock.json # 精确锁定项目依赖版本的文件

├── tsconfig.json # TypeScript 配置(如果使用 TypeScript)

├── vite.config.ts # Vite 配置文件(如果使用 Vite)

  • public 目录:用于存放公共静态资源,如 index.html 是项目的入口 HTML 文件,该目录下的资源会直接被复制到最终的打包目录中。
  • src 目录:是项目的源代码目录,所有的 Vue 组件、JavaScript 逻辑、样式等主要代码都存放在此目录下。
    • assets 目录:用于存放项目内的静态资源,如图片、样式文件等。
    • components 目录:用于存放 Vue 组件,每个组件通常是一个 .vue 文件,一个 Vue 项目由多个组件组合而成。
    • main.js:项目的入口文件,在该文件中创建 Vue 应用实例,并进行一些全局配置,例如挂载根组件、注册全局组件、引入路由和状态管理等(如果项目使用了这些功能)。
    • App.vue:项目的根组件,整个应用的结构和样式通常从这个组件开始构建,其他组件会被引入到该组件中进行组合。
  • package.json:记录了项目的依赖包信息以及一些脚本命令,通过 npm install 命令会根据此文件安装项目所需的依赖包。
  • package - lock.json:用于精确锁定项目依赖包的版本,确保在不同环境下安装的依赖包版本一致。
  • tsconfig.json:如果项目使用了 TypeScript,该文件用于配置 TypeScript 的编译选项。
  • vite.config.ts:如果项目使用了 Vite 构建工具,该文件用于配置 Vite 的相关选项,例如自定义别名、配置代理等。

了解项目结构有助于我们更好地组织和管理代码,在后续开发中能够快速找到对应的文件和逻辑。

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

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

相关文章

SpringBoot之多环境配置全解析

SpringBoot之多环境配置全解析一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1. 基础配置文件(application.properties)2. 环境专属配置文件2.2 yaml/yml格式(推荐)1. 单文…

uvm-tlm-nonblocking-get-port

前文展示了使用本质为阻塞性质的uvm_blocking_get_port TLM端口的示例,其中接收方会停滞等待发送方完成get任务。类似地,UVM TLM还提供非阻塞类型的uvm_nonblocking_get_port,发送方需通过try_get来检测get是否成功,或通过can_get…

【NCS随笔】如何在hello_world添加蓝牙功能(一)

如何在hello_world添加蓝牙功能(一)环境准备 硬件:nRF54L15DK 软件版本:NCS3.0.2 例程:hello_world 宏的配置 # Config loggerCONFIG_LOGyCONFIG_USE_SEGGER_RTTyCONFIG_LOG_BACKEND_RTTyCONFIG_LOG_BACKEND_UARTnONFI…

机器学习——KNN实现手写数字识别:基于 OpenCV 和 scikit-learn 的实战教学 (超级超级超级简单)

用KNN实现手写数字识别:基于 OpenCV 和 scikit-learn 的实战教学在这篇文章中,我们将使用 KNN(K-Nearest Neighbors)算法对手写数字进行分类识别。我们会用 OpenCV 读取图像并预处理数据,用 scikit-learn 构建并训练模…

【Git】分支

文章目录理解分支创建分支切换分支合并分支删除分支合并冲突分支管理策略分支策略bug 分支删除临时分支小结理解分支 本章开始介绍 Git 的杀手级功能之一(注意是之一,也就是后面还有之二,之三……):分支。分支就是科幻…

【32】C# WinForm入门到精通 ——打开文件OpenFileDialog 【属性、方法、事件、实例、源码】

WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,是 C# 语言中的一个重要应用。 .NET 提供了大量 Windows 风格的控件和事件,可以直接拿来使用。 本专栏内容是按照标题序号逐渐…

Wan2.2开源第1天:动态灯光功能开启创意氛围新境界

在开源软件蓬勃发展的今天,每一次新版本的发布都如同在创意的星空中点亮了一颗璀璨的新星。今天,(通义万相国际版wan)Wan2.2正式开源,它带着令人眼前一亮的动态灯光功能惊艳登场,为所有追求创意与氛围营造的…

Excel制作滑珠图、哑铃图

Excel制作滑珠图、哑铃图效果展示在较长时间周期内,很多参数都是在一定范围内浮动的,并不是一成不变的,为了直观表达各类别的浮动范围,使用“滑珠图”就是一个不错的选择,当滑珠图两侧均有珠子的时候,又称为…

Day07 JDBC+MyBatis

1.JDBC入门程序2.JDBC执行DQL语句3.JDBC预编译SQL 防止SQL注入随便输入用户名,密码为or1 1,sql注入4.Mybatis入门 Mapper 持久层XxxMapper替代Dao4.1调用接口的findAll()方法时自动执行上方的SQL语句,并将SQL查询的语句自动封装到返回值中5.Mybatis辅助…

OSS-服务端签名Web端直传+STS获取临时凭证+POST签名v4版本开发过程中的细节

这里写自定义目录标题配置OSS服务端代码初始化STS Client获取STS临时凭证创建policy计算SigningKeyOSSUtil.javaSTSPolicyDTO.java提供接口Apifox模拟Web端文件直传本文主要结合服务端STS获取临时凭证(签名)直传官方文档对开发中比较容易出错的地方加以提醒;建议主要…

uniapp实现微信小程序导航功能

1.导航按钮<button click"navigation()">导航到仓库</button>2.导航功能const navigation (item) > {let address item.province item.city item.district item.address //地址let latitude Number(item.latitude) …

07.4-使用 use 关键字引入路径

使用 use 关键字引入路径 每次调用函数时都必须写出完整路径&#xff0c;可能会感觉不便且重复。在清单7-7中&#xff0c;无论我们选择绝对路径还是相对路径来调用 add_to_waitlist 函数&#xff0c;每次调用时都必须指定 front_of_house 和 hosting。幸运的是&#xff0c;有一…

7.Linux :进程管理,进程控制与计划任务

Linux &#xff1a;进程管理&#xff0c;进程控制与计划任务 一、进程管理 1. 进程与程序 程序&#xff1a;静态的可执行文件&#xff08;存储于磁盘&#xff09;。进程&#xff1a;动态执行的程序实例&#xff08;占用CPU/内存&#xff09;。 2. 查看进程命令作用常用组合ps静…

Matplotlib(四)- 图表样式美化

文章目录一、Matplotlib图表样式介绍1. 图表样式简介2. 默认图表样式2.1 查看默认配置2.2 常用的配置3. 图表样式修改3.1 局部修改3.1.1 通过绘图方法设置参数修改3.1.2 通过rcParams修改3.1.3 通过rc()方法修改3.2 全局修改二、颜色设置1. 颜色的三种表示方式1.1 颜色单词1.2 …

三十四、【Linux常用工具】rsync+inotify实时同步演示

实时同步演示技术架构全景核心组件详解1. inotify 内核子系统2. Rsync 高效同步工具实践演示一、环境准备与安装1. 检查内核支持2. 安装 inotify-tools二、配置 Rsync 服务端&#xff08;目标机&#xff09;1. 创建 Rsync 配置文件2. 启动 Rsync 守护进程三、配置实时同步脚本&…

windows环境下MySQL 8.0 修改或重置密码

windows环境下MySQL 8.0 修改或重置密码 1打开命令窗口cmd&#xff0c;输入命令&#xff1a;net stop mysql&#xff0c; 停止MySQL服务&#xff0c; 开启跳过密码验证登录的MySQL服务 2输入命令 mysqld --console --skip-grant-tables --shared-memory 再打开一个新的cmd&…

基于YOLOP与GAN的图像修复与防御系统设计与实现

基于YOLOP与GAN的图像修复与防御系统设计与实现 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 引言 1.1 研究背景 随着深度学习技术在计算机视觉领域的…

将目录文件转移到D盘,使之后的下载缓存数据转移,不再存入c盘

将 C:\Users 文件夹&#xff08;用户文件夹&#xff09;转移到其他盘是一个复杂且风险较高的操作。C:\Users 文件夹包含了系统中每个用户的个人数据和配置文件&#xff0c;修改这个路径可能会导致系统出现问题&#xff0c;包括程序无法正常工作或无法登录。因此&#xff0c; 强…

Cesium大气散射效果

由于做全球体积云效果的需要&#xff0c;再来研究下大气散射效果和体积云类似&#xff0c;关于大气散射颜色计算的过程也仅发生在这两个球体之间。如图所示。计算从相机出发的视线与球壳的交点&#xff0c;如果不相交&#xff0c;则该视线方向上不会发生大气散射&#xff0c;直…

预过滤环境光贴图制作教程:第二步 - 生成环境贴图图集

核心目标 本步骤的核心是生成一张包含 6 级分辨率的环境贴图图集(envAtlas),实现: 将第一步的立方体贴图(sourceCube)重新映射为等矩形投影(适合存储和采样); 生成 6 级不同分辨率的等矩形数据(0 级最高清,5 级最模糊); 用 RGBP 编码压缩 HDR 数据(平衡精度与存…