【Vue3 完整学习笔记 - 第一部分】

embedded/2025/2/6 17:22:19/

Vue3 完整学习笔记 - 第一部分

  • Vue3 完整学习笔记 - 第一部分
    • 1. Vue3 基础入门
      • 1.1 Vue3 简介
      • 1.2 创建 Vue3 工程
      • 1.3 编写首个 Vue3 组件
      • 1.4 Composition API vs Options API
      • 1.5 setup 函数详解
      • 1.6 响应式数据处理

Vue3 完整学习笔记 - 第一部分

1. Vue3 基础入门

1.1 Vue3 简介

重点掌握:

  • Vue3 的主要特性和优势
  • 相比 Vue2 的重大改进
  • 为什么要学习 Vue3

核心要点:

  1. 性能提升:
    • 重写虚拟DOM实现
    • 编译器优化
    • 更高效的组件初始化
  2. 新特性:
    • Composition API
    • Teleport
    • Fragments
    • Suspense
  3. 更好的 TypeScript 支持

示例:

// Vue2 写法
export default {data() {return {count: 0}},methods: {increment() {this.count++}}
}// Vue3 Composition API 写法
import { ref } from 'vue'export default {setup() {const count = ref(0)const increment = () => count.value++return {count,increment}}
}

1.2 创建 Vue3 工程

重点掌握:

  • 使用 Vite 创建项目
  • 项目目录结构
  • 基本配置说明

步骤:

  1. 创建项目:
npm create vite@latest my-vue-app -- --template vue
cd my-vue-app
npm install
  1. 目录结构说明:
my-vue-app/
├── public/
├── src/
│   ├── assets/
│   ├── components/
│   ├── App.vue
│   └── main.js
├── index.html
├── package.json
└── vite.config.js

核心配置:

// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],server: {port: 3000}
})

1.3 编写首个 Vue3 组件

重点掌握:

  • 组件基本结构
  • <script setup> 语法
  • 组件样式和模板编写

示例组件:

vue"><template><div class="container"><h1>{{ title }}</h1><button @click="increment">点击次数: {{ count }}</button></div>
</template><script setup>
import { ref } from 'vue'const title = 'My First Vue3 App'
const count = ref(0)const increment = () => {count.value++
}
</script><style scoped>
.container {text-align: center;margin-top: 20px;
}button {padding: 8px 16px;font-size: 16px;
}
</style>

1.4 Composition API vs Options API

重点掌握:

  • 两种 API 的区别
  • 各自的适用场景
  • 如何选择使用哪种 API

Options API:

vue"><script>
export default {data() {return {firstName: 'John',lastName: 'Doe',age: 30}},computed: {fullName() {return `${this.firstName} ${this.lastName}`}},methods: {incrementAge() {this.age++}}
}
</script>

Composition API:

vue"><script setup>
import { ref, computed } from 'vue'const firstName = ref('John')
const lastName = ref('Doe')
const age = ref(30)const fullName = computed(() => `${firstName.value} ${lastName.value}`)const incrementAge = () => {age.value++
}
</script>

优劣对比:

  1. Options API:
    • 优点:结构清晰,容易理解
    • 缺点:代码复用困难,逻辑分散
  2. Composition API:
    • 优点:逻辑复用方便,更好的TypeScript支持
    • 缺点:学习曲线相对陡峭

1.5 setup 函数详解

重点掌握:

  • setup 执行时机
  • setup 参数
  • 返回值处理
  • <script setup> 语法糖

基本使用:

vue"><script>
import { ref } from 'vue'export default {props: {title: String},setup(props, context) {// 创建响应式数据const count = ref(0)// 方法const increment = () => {count.value++}// 返回值会暴露给模板return {count,increment}}
}
</script>

使用 <script setup>

vue"><script setup>
import { ref } from 'vue'// 直接定义响应式数据
const count = ref(0)// 直接定义方法
const increment = () => {count.value++
}// 无需return,自动暴露给模板
</script>

1.6 响应式数据处理

重点掌握:

  • ref 的使用
  • reactive 的使用
  • 两者的区别和选择

ref 示例:

vue"><script setup>
import { ref } from 'vue'// 基本类型
const count = ref(0)
const message = ref('Hello')// 访问和修改
console.log(count.value)
count.value++// 对象类型
const user = ref({name: 'John',age: 30
})// 修改对象属性
user.value.age++
</script>

reactive 示例:

vue"><script setup>
import { reactive } from 'vue'// 创建响应式对象
const state = reactive({count: 0,user: {name: 'John',age: 30}
})// 直接修改属性
state.count++
state.user.age++
</script>

http://www.ppmy.cn/embedded/160088.html

相关文章

RGB565转BITMAP[C#---2]

这是楼主在开发C#上位机的时候遇到的另一个问题&#xff0c;怎么把RGB565转为BITMAP&#xff0c;在CSDN上搜索&#xff0c;要么是安卓平台的&#xff0c;要么是2011年的古早代码&#xff08;还没排版&#xff09;&#xff0c;还是靠自己和DEEPSEEK的智慧解决了(●’◡’●) 当然…

【PyQt】keyPressEvent键盘按压事件无响应

问题描述 通过load ui 文件加载程序时&#xff0c;keyPressEvent键盘按压事件无响应 原因 主要是由于事件处理的方式和窗口的显示方式不正确所导致的。 解决代码 self&#xff1a;这里的self作为loadUi函数的第二个参数&#xff0c;意味着加载的界面将被设置为当前类实例&…

基于YOLO11的肺结节检测系统

基于YOLO11的肺结节检测系统 (价格90) LUNA16数据集 数据一共 1186张 按照8&#xff1a;1&#xff1a;1随机划分训练集&#xff08;948张&#xff09;、验证集&#xff08;118张&#xff09;与测试集&#xff08;120张&#xff09; 包含 nodule 肺结节 1种…

『 C++ 』中理解回调类型在 C++ 中的使用方式。

文章目录 案例 1&#xff1a;图形绘制库中的回调使用场景说明代码实现代码解释 案例 2&#xff1a;网络服务器中的连接和消息处理回调场景说明代码实现代码解释 案例 3&#xff1a;定时器中的回调使用场景说明代码实现代码解释 以下将通过不同场景给出几个使用回调类型的具体案…

Python之如何在Visual Studio Code 中写的python程序打包成可以在Windows系统下运行的.exe程序

要将你在 Visual Studio Code 中编写的 Python 程序打包成可以在 Windows 系统下运行的 .exe 文件&#xff0c;可以使用 PyInstaller 工具。以下是详细的操作步骤&#xff1a; 1. 安装 PyInstaller 首先&#xff0c;你需要安装 PyInstaller。打开终端&#xff08;可以在 VS C…

GPU 硬件原理架构(一)

这张费米管线架构图能看懂了&#xff0c;整个GPU的架构基本就熟了。市面上有很多GPU厂家&#xff0c;他们产品的架构各不相同&#xff0c;但是核心往往差不多&#xff0c;整明白一了个基本上就可以触类旁通了。下面这张图信息量很大&#xff0c;可以结合博客GPU 英伟达GPU架构回…

《手札·开源篇》从开源到商业化:中小企业的低成本数字化转型路径——一位甲方信息化负责人与开源开发者的八年双重视角

在中小企业数字化转型的浪潮中&#xff0c;"低成本"与"可持续性"始终是悬在决策者头顶的双刃剑。作为曾操盘过30信息化项目、主导过开源ERP二次开发的信息化老兵&#xff0c;我试图通过"甲方信息化负责人"与"开源开发者"的双重身份&am…

电控三周速成计划参考

第1周&#xff1a;基础搭建与GPIO控制 学习目标&#xff1a;建立开发环境&#xff0c;掌握最基础的硬件控制能力 每日学习&#xff08;2-3小时&#xff09;&#xff1a; 环境搭建&#xff08;2天&#xff09; 安装Keil MDK-ARM STM32CubeMX使用CubeMX创建第一个工程&#xf…