Vue 3 从入门到精通 - 完整指南

📚 目录

  • 开发环境与项目初始化

  • Vue 3 基础知识

  • 组件开发模式对比

  • 组件间通信

  • 路由配置

  • 状态管理

  • 完整案例:Login 应用

  • 高级特性

  • 项目架构与优化

  • 总结与扩展

🛠️ 开发环境与项目初始化

环境要求

  • Node.js:推荐 LTS 版本

  • 包管理器:npm、yarn 或 pnpm

使用 Vite 创建项目

bash

  1. # 创建项目
  2. npm create vite@latest vue3-demo -- --template vue
  3. cd vue3-demo
  4. # 安装依赖
  5. npm install
  6. # 启动开发服务器
  7. npm run dev
bash

增强配置

javascript

  1. // vite.config.js
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import { resolve } from 'path'
  5. export default defineConfig({
  6. plugins: [vue()],
  7. resolve: {
  8. alias: {
  9. '@': resolve(__dirname, 'src')
  10. }
  11. },
  12. server: {
  13. port: 3000,
  14. open: true
  15. }
  16. })
javascript运行

🎯 Vue 3 基础知识

模板语法与指令

vue

  1. <template>
  2. <div>
  3. <!-- 插值 -->
  4. <h1>{
  5. { message }}</h1>
  6. <!-- 条件渲染 -->
  7. <p v-if="visible">显示内容</p>
  8. <p v-else>其他内容</p>
  9. <!-- 列表渲染 -->
  10. <ul>
  11. <li v-for="(item, index) in items" :key="index">
  12. {
  13. { item }}
  14. </li>
  15. </ul>
  16. <!-- 事件处理 -->
  17. <button @click="handleClick">点击</button>
  18. <!-- 属性绑定 -->
  19. <input :value="inputValue" @input="handleInput">
  20. </div>
  21. </template>
javascript运行

响应式 API

1. ref 与 reactive

vue

  1. <script setup>
  2. import { ref, reactive } from 'vue'
  3. // ref - 用于基本类型
  4. const count = ref(0)
  5. const message = ref('Hello')
  6. // reactive - 用于对象
  7. const state = reactive({
  8. user: {
  9. name: 'John',
  10. age: 25
  11. },
  12. todos: []
  13. })
  14. // 修改值
  15. count.value++ // ref 需要 .value
  16. state.user.name = 'Alice' // reactive 直接访问
  17. </script>
javascript运行
2. 计算属性

vue

  1. <script setup>
  2. import { ref, computed } from 'vue'
  3. const price = ref(10)
  4. const quantity = ref(2)
  5. // 计算属性
  6. const total = computed(() => price.value * quantity.value)
  7. // 带 setter 的计算属性
  8. const fullName = computed({
  9. get: () => `${firstName.value} ${lastName.value}`,
  10. set: (newValue) => {
  11. [firstName.value, lastName.value] = newValue.split(' ')
  12. }
  13. })
  14. </script>
javascript运行
3. 侦听器

vue

  1. <script setup>
  2. import { ref, watch, watchEffect } from 'vue'
  3. const count = ref(0)
  4. const user = reactive({ name: 'John' })
  5. // 侦听单个值
  6. watch(count, (newVal, oldVal) => {
  7. console.log(`Count changed: ${oldVal} -> ${newVal}`)
  8. })
  9. // 侦听多个值
  10. watch([count, () => user.name], ([newCount, newName]) => {
  11. console.log(`Count: ${newCount}, Name: ${newName}`)
  12. })
  13. // 立即执行的侦听器
  14. watchEffect(() => {
  15. console.log(`Count is: ${count.value}`)
  16. })
  17. </script>
javascript运行

⚙️ 组件开发模式对比

1. Options API(传统方式)

vue

  1. <template>
  2. <div>{
  3. { greeting }}</div>
  4. </template>
  5. <script>
  6. export default {
  7. data() {
  8. return {
  9. greeting: 'Hello Options API'
  10. }
  11. },
  12. methods: {
  13. updateGreeting() {
  14. this.greeting = 'Updated!'
  15. }
  16. },
  17. mounted() {
  18. console.log('Component mounted')
  19. }
  20. }
  21. </script>
javascript运行

2. Composition API

vue

  1. <template>
  2. <div>{
  3. { greeting }}</div>
  4. </template>
  5. <script>
  6. import { ref, onMounted } from 'vue'
  7. export default {
  8. setup() {
  9. const greeting = ref('Hello Composition API')
  10. const updateGreeting = () => {
  11. greeting.value = 'Updated!'
  12. }
  13. onMounted(() => {
  14. console.log('Component mounted')
  15. })
  16. return {
  17. greeting,
  18. updateGreeting
  19. }
  20. }
  21. }
  22. </script>
javascript运行

3. <script setup>(推荐)

vue

  1. <template>
  2. <div>{
  3. { greeting }}</div>
  4. </template>
  5. <script setup>
  6. import { ref, onMounted } from 'vue'
  7. const greeting = ref('Hello <script setup>')
  8. const updat
javascript运行

登录后您可以享受以下权益:

×
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

举报

选择你想要举报的内容(必选)
  • 内容涉黄
  • 政治相关
  • 内容抄袭
  • 涉嫌广告
  • 内容侵权
  • 侮辱谩骂
  • 样式问题
  • 其他
点击体验
DeepSeekR1满血版
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回顶部