学习Vue3的第一天

目录

简介

什么是 Vue?

创建Vue3工程

前提条件

基于 vue-cli 创建(不推荐)

基于 vite 创建(推荐)

通过 CDN 使用 Vue

代码示例


简介

什么是 Vue?

Vue.js 是一个流行的前端 JavaScript 框架,用于构建用户界面和单页面应用程序(SPA)。Vue.js 的第三个主要版本是 Vue 3。Vue 3 在性能、开发体验和扩展性等方面进行了许多改进和优化。

以下是 Vue 3 的一些主要特点:

  • Composition API: Vue 3 引入了 Composition API,这是一种新的组织组件逻辑的方式,使得代码更易于阅读、维护和重用。Composition API 允许将相关逻辑组织在一起,而不是按照选项(data、methods、computed 等)的方式分散在组件中。
  • 更快的渲染性能: Vue 3 通过对响应系统的重写和优化,以及对虚拟 DOM 的改进,提供了更快的渲染性能。这包括了更快的初始化、更新和销毁过程。
  • 更小的包大小: Vue 3 通过精简和优化代码,以及利用 Tree-shaking 等技术,使得最终构建的包更小,这有助于减少加载时间和网络传输量。
  • Typescript 支持: Vue 3 具有更好的 TypeScript 支持,包括更完整的类型定义和更好的类型推断,这使得在 TypeScript 项目中使用 Vue 更加方便。
  • 更好的 TypeScript 集成: Vue 3 提供了更好的 TypeScript 集成和支持,使得在使用 TypeScript 进行开发时更加顺畅。
  • 更好的错误处理: Vue 3 改进了错误处理机制,提供了更清晰的错误信息和堆栈跟踪,有助于更快地定位和解决问题。

总的来说,Vue 3 保留了 Vue.js 的简洁性和易用性,并通过引入新特性和优化现有功能来提高开发效率和应用性能。

创建Vue3工程

前提条件

  • 熟悉命令行
  • 已安装 18.0 或更高版本的 Node.js

不会安装node.js的小伙伴,可以参考这个视频

Node.js安装及环境变量配置_哔哩哔哩_bilibili

基于 vue-cli 创建(不推荐)

点击查看官方文档

备注:目前vue-cli已处于维护模式,官方推荐基于 Vite 创建项目。

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

## 安装或者升级你的@vue/cli 
npm install -g @vue/cli

## 执行创建命令
vue create vue_test

##  随后选择3.x
##  Choose a version of Vue.js that you want to start the project with (Use arrow keys)
##  > 3.x
##    2.x

## 启动
cd vue_test
npm run serve

基于 vite 创建(推荐)

vite 是新一代前端构建工具,官网地址:https://vitejs.cn,

vite的优势如下:

  1. 轻量快速的热重载(HMR): Vite 提供了快速的热模块重载,使开发者能够即时看到代码更改后的效果,提高了开发效率。

  2. 对 TypeScript、JSX、CSS 等支持开箱即用: Vite 对于一些常用的前端开发技术栈(如 TypeScript、JSX、CSS)提供了开箱即用的支持,无需额外配置即可开始开发。

  3. 真正的按需编译: Vite 采用了一种按需编译的方式,只有在需要的时候才会编译相应的模块,而不是等待整个应用编译完成。这种方式提高了开发过程中的响应速度和效率。

  4. 快速启动服务: Vite 的服务启动速度极快,使得开发者能够快速开始编写代码并查看效果,提高了开发的流畅度。

  5. 优化的构建性能: 与传统的构建工具相比,Vite 在构建过程中的性能表现更好,使得开发者能够更快地构建和部署应用程序。

综上所述,Vite 的优势在于其快速的热重载、开箱即用的支持、按需编译、快速启动服务和优化的构建性能,这些特点使得前端开发过程更加高效和愉快。

具体操作如下(点击查看官方文档)

## 1.创建命令(任选一种)
npm create vue@latest

pnpm create vue@latest

yarn create vue@latest

bun create vue@latest

## 2.具体配置
## 配置项目名称
√ Project name: vue3_test
## 是否添加TypeScript支持
√ Add TypeScript?  Yes
## 是否添加JSX支持
√ Add JSX Support?  No
## 是否添加路由环境
√ Add Vue Router for Single Page Application development?  No
## 是否添加pinia环境
√ Add Pinia for state management?  No
## 是否添加单元测试
√ Add Vitest for Unit Testing?  No
## 是否添加端到端测试方案
√ Add an End-to-End Testing Solution? » No
## 是否添加ESLint语法检查
√ Add ESLint for code quality?  Yes
## 是否添加Prettiert代码格式化
√ Add Prettier for code formatting?  No

如果不确定是否要开启某个功能,你可以直接按下回车键选择 NO。在项目被创建后,通过以下步骤安装依赖并启动开发服务器:

----npm----
cd <your-project-name>
npm install
npm run dev----pnpm----
cd <your-project-name>
pnpm install
pnpm run dev----yarn----
cd <your-project-name>
yarn
yarn dev----bun----
cd <your-project-name>
bun install
bun run dev

 安装官方推荐的vscode插件:

当你准备将应用发布到生产环境时,请运行(任选一种):

npm run build
pnpm run build
yarn build
bun run build

通过 CDN 使用 Vue

可以借助 script 标签直接通过 CDN 来使用 Vue:

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

通过 CDN 使用 Vue 时,不涉及“构建步骤”。这使得设置更加简单,并且可以用于增强静态的 HTML 或与后端框架集成。但是,你将无法使用单文件组件 (SFC) 语法。 

代码示例

<template><div class="person"><h2>姓名:{{name}}</h2><h2>年龄:{{age}}</h2><button @click="changeName">修改名字</button><button @click="changeAge">年龄+1</button><button @click="showTel">点我查看联系方式</button></div>
</template>
<script lang="ts">
export default {name: "Preson",
};
</script>
<script setup lang="ts">
import { ref } from 'vue';
const name = ref('张三');
const age = ref(18);
const tel = '1234567890';
function changeName() {name.value = '李四';
}
function changeAge() {age.value +=1;
}
function showTel() {alert(tel)
}
</script>
<style scoped>.person {background-color: skyblue;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}button {margin: 0 5px;}
</style>

这段代码是一个 Vue 3 组件的代码片段,包含了模板、脚本和样式。让我来解释一下这个组件的功能和结构:

1、模板部分:

  • <template> 标签中包含了组件的 HTML 结构,其中包括姓名、年龄和三个按钮。
  • {{name}} 和 {{age}} 是 Vue 的插值语法,用于显示 name 和 age 的值。
  • @click 是 Vue 的事件监听器,用于在按钮被点击时调用相应的方法。

2、脚本部分:

  • <script lang="ts"> 标签中的代码定义了 Vue 组件的基本信息,这里主要是组件的名称。
  • <script setup lang="ts"> 标签中的代码使用了 Vue 3 新引入的 <script setup> 语法,用于编写组件的逻辑部分。
  • import { ref } from 'vue'; 导入了 Vue 3 中的 ref 方法,用于创建响应式的数据。
  • const name = ref('张三'); 和 const age = ref(18); 创建了名为 name 和 age 的响应式数据。
  • const tel = '1234567890'; 定义了一个不需要响应式的常量。
  • function changeName() { ... }、function changeAge() { ... } 和 function showTel() { ... } 分别定义了修改姓名、增加年龄和显示电话的方法。

3、样式部分:

  • <style scoped> 标签中的 CSS 样式只作用于当前组件,不会影响到其他组件。
  • .person 类设置了背景颜色、阴影、圆角和内边距等样式。
  • button 样式设置了按钮之间的间距。

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

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

相关文章

用keytool 生成JWT的RSA非对称密钥

写在前面 JWT 令牌 可以由 X.509 证书或 256 位非对称密钥签名来充当&#xff0c;为了获得合法的JWT 令牌&#xff0c;我们可以使用JDK中的keytool.exe工具来生成。 本例的操作环境是Windows系统&#xff0c;操作的前置条件需要先安装好JDK&#xff0c;并配置好环境变量&…

Vue 学习随笔系列九 -- 表格中插入图片、背景、自定义表头

表格中插入图片和icon 文章目录 表格中插入图片和icon一、如何插入图片1、代码2、效果 二、文字添加背景1、代码2、效果 三、表头悬浮提示语四、表头添加图标 一、如何插入图片 1、代码 <template><div><el-tablesize"small"borderv-loading"l…

K8S部署Harbor镜像仓库(含离线安装包harbor-offline-installer国内下载链接)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

面向智算服务,构建可观测体系最佳实践

作者&#xff1a;蓟北 构建面向 AI、大数据、容器的可观测体系 &#xff08;一&#xff09;智算服务可观测概况 对于越来越火爆的人工智能领域来说&#xff0c;MLOps 是解决这一领域的系统工程&#xff0c;它结合了所有与机器学习相关的任务和流程&#xff0c;从数据管理、建…

Qt程序设计-读写CSV文件

本文实例演示Qt读写CSV文件实现 创建项目 添加两个按钮和一个显示路径的label 界面如下 UI界面 <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"><class>MainWindow</class><widget class="QM…

[BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析

保护 ida 这里使用mmap函数创造了一个内存映射区域 从地址0x123000开始&#xff0c;大小位0x1000 权限为可写可执行&#xff08;可读0x1&#xff0c;可写0x2&#xff0c;可执行0x3&#xff09; 设置为私有映射&#xff08;MAP_PRIVATE&#xff09;和匿名映射&#xff08;MAP…

【buuctf--被偷走的文件】

将 ftp 流量过滤下来&#xff0c;追踪 ftp 流量&#xff0c;得到下图 先解释一下这四行什么意思&#xff1a; PASV&#xff1a; 这是FTP的命令&#xff0c;用于告知服务器在数据连接中使用被动模式&#xff08;Passive Mode&#xff09;。在被动模式下&#xff0c;数据连接的…

Java Stram 流对于返回对象的处理 (结束流)

Java Stram 流对于返回对象的处理 &#xff08;结束流&#xff09; package com.zhong.streamdemo.showdownstreamdemo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.*; import java.util.stream.Collectors; im…

【golang】24、go get 和 go mod:indrect 与 go mod tidy

文章目录 go get 会执行如下操作&#xff1a; 操作 go.mod 文件&#xff08;add、update、remove&#xff09;下载依赖到 $GOPATH/pkg/mod 中若已安装&#xff0c;则更新该包&#xff0c;到最新版本 试验前置准备&#xff1a;首先删除已下载的依赖&#xff0c;rm -rf $GOPATH…

MySQL篇----第十四篇

系列文章目录 文章目录 系列文章目录前言一、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?二、锁的优化策略三、索引的底层实现原理和优化四、什么情况下设置了索引但无法使用前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

OpenId、UnionId

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. OpenId1.1 概念1.2 公众号OpenId&#xff08;简称 wxopenid&#xff09;同一个微信用户在小程序和公众号上的openid是不同的 1.3 openid的获取方式方式1. 调用wx…

Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案

目录 发现问题 解决办法 第一步 第二步 第三步 第四步 最后一步 问题解决 发现问题 如果大家也遇到下面这种问题&#xff0c;可能是没有include文件夹中没有bits/stdc.h 解决办法 第一步 打开一个C项目&#xff0c;鼠标移动至头文件上右击&#xff0c;选择转到文档或…

Merging of neural networks

Merging of neural networks 论文链接&#xff1a;https://arxiv.org/pdf/2204.09973v2.pdf源码链接&#xff1a;https://github.com/fmfi-compbio/neural-network-merging 简介 典型的神经网络训练从随机初始化开始&#xff0c;并进行训练&#xff0c;直到在某些局部最优中…

YOLOv8改进 | 利用训练好权重文件计算YOLOv8的FPS、推理每张图片的平均时间(科研必备)

一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有帮助,可以清晰帮你展示出模型速度性能的提升以及轻量…

Sublime Text 3配置 Node.js 开发环境

《开发工具系列》 Sublime Text 3配置 Node.js 开发环境 一、引言二、主要内容2.1 初识 Sublime Text 32.2 初识 Node.js2.3 接入 Node.js2.3.1 下载并安装 Node.js2.3.2 环境变量配置 2.4 配置 Node.js 开发环境2.5 编写 Node.js 代码2.6 运行 Node.js 代码 三、总结 一、引言…

【MySQL】-11 MySQL 架构及优化原理

MySQL 架构及优化原理 1 MySQL逻辑架构2 MySQL逻辑架构整体分为三层 :3 MySQL查询过程MySQL 整个查询执行过程&#xff0c;总的来说分为 5 个步骤 :3.1 客户端/服务端通信协议3.2 查询缓存3.3 查询优化3.4 查询执行引擎3.5 返回结果给客户端 4 查询系统性能1 分析查询语句2 索…

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

学习Android的第七天

目录 Android EditText 输入框 设置默认提示文本 范例 获得焦点后全选组件内所有文本内容 范例 限制EditText输入类型 android:inputType 值列表 范例 设置最小行&#xff0c;最多行&#xff0c;单行&#xff0c;多行&#xff0c;自动换行 范例 设置文字间隔 范例 …

React环境配置

1.安装Node.js Node.js官网&#xff1a;https://nodejs.org/en/ 下载之后按默认选项安装好 重启电脑即可自动完成配置 2.安装React 国内使用 npm 速度很慢&#xff0c;可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。 ①使用 winR 输入 cmd 打开终端 ②依…

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…