2026年 Vue3 零基础小白入门知识点【基础完整版 · 通俗易懂 条理清晰】

✅ 2026最新技术规范,纯零基础友好 ,从0到1讲解,无任何前置框架/语法要求,看完就能上手

✅ 内容通俗易懂、无专业黑话,所有知识点用大白话解释,代码案例极简可运行,每一步都有清晰说明

✅ 条理清晰、循序渐进,知识点由浅入深,从环境搭建→核心语法→组件开发→常用API→实战案例,完美贴合小白学习节奏

✅ 2026主流技术栈:Vue3 + Vite + Pinia + VueRouter4,不学过时内容,学的就是企业开发标配,零基础也能对接真实开发需求

✅ 核心定位:零基础小白看完能掌握 Vue3 开发核心能力,能独立开发中小型Vue3项目(管理后台、官网、移动端页面),是前端入门Vue3的最佳基础教程


一、Vue3 前置必懂(零基础扫盲 · 5分钟吃透 少走99%弯路)

✔️ 1. 什么是Vue3?(白话版 零基础秒懂)

Vue 是一套渐进式JavaScript前端框架 ,Vue3 是 Vue 的最新稳定版本(2026年主流版本是 Vue3.4+),也是目前前端开发最主流、最热门的框架之一。

✅ 核心大白话解释:

  • 原生JS写页面:需要手动操作DOM、处理数据渲染、维护页面状态,代码混乱且重复工作多;
  • Vue3写页面:不用手动操作DOM,只需要关注「数据」和「页面结构」,Vue3自动帮你完成数据和页面的联动,写代码效率翻倍,代码更简洁易维护。
  • 一句话总结:Vue3 是让前端开发变简单的「神器」,零基础友好,上手快,开发效率高

✔️ 2. 为什么2026年必学Vue3?(零基础必知 学习理由)

Vue3 能成为前端主流,不是没有原因的,这些理由对零基础小白尤其友好,每一条都很重要:

  1. 零基础友好,入门门槛极低:Vue3的语法贴近原生HTML/CSS/JS,会基础的前端三件套就能学,不用先学复杂的编程思想,上手速度远超React/Angular;
  2. 生态完善,文档友好:官方文档中文清晰、案例丰富,配套的插件/UI库/工具链应有尽有,遇到问题能快速找到解决方案;
  3. 企业招聘刚需 :2026年90%的前端岗位都要求「熟悉Vue3」,掌握Vue3是前端找工作的核心基础技能,薪资也比只会原生JS的高;
  4. 性能优秀,轻量化:Vue3比Vue2运行更快、体积更小,支持按需引入,适配PC端、移动端所有开发场景;
  5. 语法灵活,渐进式框架:可以按需学习,不用一次性学完所有内容,学一点用一点,比如先写简单页面,再学组件、路由,循序渐进无压力。

✔️ 3. Vue3 和 Vue2 的核心区别(零基础只需了解 不用深究)

很多小白会纠结要不要先学Vue2,这里给你2026年明确结论零基础直接学Vue3即可,完全不用学Vue2

  • ✅ Vue3是Vue的未来,所有新项目、企业新项目都用Vue3开发,Vue2已进入维护阶段,几乎不再用于新项目;
  • ✅ Vue3的语法更简洁、更符合现代JS规范,零基础学Vue3没有任何历史包袱,反而更容易理解;
  • ✅ 核心区别:Vue3主推 组合式API(Composition API) ,Vue2主推 选项式API(Options API),Vue3完全兼容选项式API,学了Vue3能看懂Vue2代码,反之则不行。

✔️ 4. Vue3 核心学习原则(零基础避坑 重中之重)

这是零基础学Vue3最核心的避坑指南,99%的小白踩坑都是因为违背了这个原则,一定要牢记:

✅ 「先会用,再理解」,「多动手,少死记」

  • 不用一开始就深究原理,先跟着案例敲代码,能实现功能就好,写多了自然理解底层逻辑;
  • Vue3的核心语法就那些,所有复杂项目都是基础语法的组合,吃透基础,就能应对80%的开发需求
  • 拒绝「眼会手不会」,所有案例一定要亲手敲一遍,运行成功再做修改,手感比看一百遍都重要。

✔️ 5. 学习目标(零基础清晰认知)

学完本基础版所有内容,你能掌握 Vue3 开发的核心基础能力 ,达到2026年企业对「Vue3初级开发」的基础要求:

✅ 熟练搭建Vue3+Vite开发环境,能独立创建Vue3项目;

✅ 吃透Vue3的核心语法:模板语法、响应式数据、事件绑定、计算属性、侦听器等;

✅ 掌握Vue3的组件开发:父子组件通信、组件复用、Props传值、插槽使用;

✅ 学会Vue3的两个核心配套库:VueRouter4(路由)、Pinia(状态管理);

✅ 能独立开发一个完整的Vue3单页面应用(SPA),比如待办清单、商品列表、简易管理后台;

✅ 具备阅读Vue3官方文档和解决基础开发问题的能力。


二、Vue3 开发环境搭建(2026最新极简版 · 零基础一键搞定 无坑)

✅ 核心说明:2026年Vue3的官方推荐、最优开发环境 是:Vue3 + Vite + npm/pnpm + VS Code,这也是企业开发的标配,零基础无脑按这个配置即可 ,没有更简单的方案了!

✅ 前置要求:电脑上需要安装 Node.js(18.x及以上版本) ,Node.js自带npm包管理器,安装后才能创建Vue3项目。(Node.js安装无脑下一步即可,官网下载:nodejs.org

✅ 开发工具:VS Code(免费、轻量、插件丰富,前端开发标配,无其他选择)

✔️ 环境搭建 三步搞定(零基础复制命令即可 全程无脑操作)

✅ 第一步:安装VS Code必备插件(开发Vue3必装 提升效率)

打开VS Code,在左侧「扩展」面板搜索安装以下插件,全部勾选「启用」,不用重启即可生效:

  1. Vue - Official:Vue官方插件,提供Vue3语法高亮、代码提示、格式化,必装
  2. Volar:Vue3专属语法支持,替代老旧的Vetur,必装
  3. Chinese (Simplified):VS Code中文语言包,零基础友好;
  4. Auto Rename Tag:自动同步HTML标签的修改,写代码更省心。
✅ 第二步:创建Vue3项目(打开电脑终端/VS Code终端 复制命令)

终端打开方式:Windows用Win+R输入cmd,Mac用启动台打开终端,VS Code中按 `Ctrl + `` 快速打开终端。

bash 复制代码
# 方式1:使用npm创建(推荐零基础,Node.js自带,无需额外安装)
npm create vue@latest

# 方式2:使用pnpm创建(2026企业主流,更快、更省空间,安装:npm install -g pnpm)
pnpm create vue@latest
✅ 第三步:项目创建后的「傻瓜式选择」(零基础必看 按这个选 无坑)

执行上面的命令后,终端会出现一系列选择,零基础按以下配置选择即可,全程回车/输入对应字母,不用纠结:

  1. 输入项目名称:比如 vue3-demo,回车;
  2. 是否使用TypeScript:No(零基础先学JS版,后续进阶再学TS,降低入门难度);
  3. 是否使用JSX:No
  4. 是否安装Pinia:Yes(Vue3官方状态管理库,必装,核心);
  5. 是否安装Vue Router:Yes(Vue3官方路由库,必装,核心);
  6. 是否安装ESLint:No(代码校验,零基础暂时不用,避免报错);
  7. 其他选项全部选 No
  8. 最后终端会提示进入项目、安装依赖、运行项目,复制终端的3条命令依次执行即可
bash 复制代码
cd vue3-demo  # 进入项目目录
npm install   # 安装项目依赖
npm run dev   # 启动开发服务器

✔️ 启动成功 大功告成!

执行 npm run dev 后,终端会显示一个本地地址(比如 http://localhost:5173/),复制这个地址打开浏览器,就能看到Vue3的默认页面,恭喜你!零基础的你已经成功搭建并启动了第一个Vue3项目

✔️ Vue3项目目录结构(零基础必懂 精简版 只记核心文件)

零基础不用记所有文件,只需要认识以下核心文件/文件夹,99%的开发工作都在这些地方完成,其他文件暂时不用管,避免增加负担:

复制代码
vue3-demo/
├── node_modules/  # 项目依赖包,不用修改
├── src/           # 项目核心源码目录,所有代码都写在这里 ✅重中之重✅
│   ├── assets/    # 静态资源:图片、CSS样式、字体等
│   ├── components/# 公共组件目录:可复用的Vue组件(比如按钮、卡片) ✅核心✅
│   ├── router/    # 路由配置文件:页面跳转规则 ✅核心✅
│   ├── stores/    # Pinia状态管理:全局数据存储 ✅核心✅
│   ├── views/     # 页面组件目录:首页、列表页、详情页等 ✅核心✅
│   ├── App.vue    # 根组件,所有页面的入口 ✅核心✅
│   └── main.js    # 项目入口文件,初始化Vue实例 ✅核心✅
├── index.html     # 项目入口HTML,不用修改
└── package.json   # 项目配置文件,脚本命令/依赖管理

三、Vue3 核心基础语法(⭐⭐⭐⭐⭐ 重中之重 使用率100% 零基础必学必背)

✅ 核心定位:这是 Vue3的灵魂知识点 ,也是零基础入门的核心,所有Vue3项目都是基于这些基础语法搭建的,占开发比重的90%

✅ 学习方式:所有语法都基于 Vue3的单文件组件(.vue文件) ,一个.vue文件就是一个独立的Vue组件,包含「HTML结构、CSS样式、JS逻辑」三部分,完美分离,零基础一看就懂;

✅ 所有案例都可以直接写在你的Vue3项目的 src/components/ 目录下,运行项目即可看到效果,边学边敲 立竿见影

✔️ 前置必懂:Vue3单文件组件(.vue)的基本结构(固定不变 必记)

每个.vue文件都由 3个核心标签 组成,这是Vue3的基础规范,所有代码都必须写在对应的标签里,零基础死记即可:

vue 复制代码
<!-- 文件名:HelloVue.vue -->
<template>
  <!-- 1. HTML结构:页面展示的内容,所有标签写在这里 -->
  <div class="hello">
    <h1>Hello Vue3!</h1>
  </div>
</template>

<script setup>
  // 2. JS逻辑:Vue3的核心代码,响应式数据、方法、导入导出等,写在这里
  // setup 是Vue3的语法糖,零基础所有代码都写在这个标签里即可 ✅重中之重✅
  console.log('我是Vue3的JS逻辑')
</script>

<style scoped>
  /* 3. CSS样式:页面样式,scoped表示样式只作用于当前组件,不会污染其他组件 */
  .hello {
    color: #42b983;
    text-align: center;
    margin-top: 50px;
  }
</style>

✨ 核心说明:script setup 是Vue3的语法糖,2026年所有Vue3项目都用这个写法,简化了大量代码,零基础不用理解原理,直接用就好,这是官方推荐的最优写法!


✔️ 1. 模板语法 & 插值表达式 {{ }} (必学 使用率100%)

✅ 核心作用

<template>的HTML结构中,绑定JS中的数据 ,实现「数据渲染到页面」的核心功能,这是Vue3的最基础语法,没有之一。

✅ 语法规则
vue 复制代码
<template>
  <!-- 基础用法:直接渲染变量 -->
  <p>我的名字:{{ name }}</p>
  <!-- 支持简单的JS表达式:运算、三元运算符、字符串拼接 -->
  <p>我的年龄+1:{{ age + 1 }}</p>
  <p>是否成年:{{ age >= 18 ? '是' : '否' }}</p>
  <p>完整信息:{{ name + ',今年' + age + '岁' }}</p>
</template>

<script setup>
  // 定义页面需要的变量
  const name = 'Vue3小白'
  const age = 20
</script>
✅ 零基础必记规则
  1. {``{ }} 里面只能写 单个JS表达式,不能写语句(比如if/for循环);
  2. 数据和页面是「联动」的:修改JS中的变量值,页面会自动更新,不用手动操作DOM,这就是Vue的「数据驱动视图」核心思想;
  3. 这是Vue3最核心的语法,所有页面渲染都离不开它,必须熟练掌握。

✔️ 2. 响应式数据(⭐⭐⭐⭐⭐ 核心中的核心 必学必懂)

✅ 什么是响应式数据?(白话版 零基础秒懂)

上面的例子中,我们定义的const name = 'Vue3小白'普通变量 ,如果在JS中修改这个变量的值,页面不会更新

Vue3的「响应式数据」就是:被Vue3监听的变量,当变量的值发生改变时,页面会自动同步更新,这是Vue3实现「数据驱动视图」的核心机制。

✅ 一句话总结:开发Vue3项目,所有需要在页面展示且可能变化的数据,都必须定义为「响应式数据」

✅ Vue3定义响应式数据的2种核心方式(零基础必学 够用所有场景)

Vue3提供了两个核心API来定义响应式数据,全部在 script setup 中使用,零基础只需要学这2种,足够应对99%的开发需求,不用学其他复杂方式!

✅ 方式1:ref ------ 定义「基本类型」响应式数据(必学 使用率60%)

适用于:数字、字符串、布尔值 这类基本类型数据,比如年龄、姓名、开关状态。

vue 复制代码
<template>
  <p>当前计数:{{ count }}</p>
  <button @click="addCount">点击+1</button>
</template>

<script setup>
  // 第一步:从vue中导入ref
  import { ref } from 'vue'

  // 第二步:用ref定义响应式数据,参数是默认值
  const count = ref(0) // 数字
  const name = ref('Vue3') // 字符串
  const isShow = ref(true) // 布尔值

  // 定义方法:修改响应式数据
  const addCount = () => {
    // 注意:JS中修改ref定义的数据,需要加 .value
    count.value += 1
  }
</script>

✨ 零基础必记规则:

  1. ref定义的数据,在中使用时,直接写变量名即可(不用.value)
  2. ref定义的数据,
✅ 方式2:reactive ------ 定义「引用类型」响应式数据(必学 使用率40%)

适用于:对象、数组 这类引用类型数据,比如用户信息、商品列表、表单数据,这是开发中处理复杂数据的核心方式。

vue 复制代码
<template>
  <p>姓名:{{ user.name }}</p>
  <p>年龄:{{ user.age }}</p>
  <p>爱好:{{ hobbies }}</p>
  <button @click="updateData">修改数据</button>
</template>

<script setup>
  // 第一步:从vue中导入reactive
  import { reactive } from 'vue'

  // 第二步:用reactive定义响应式对象/数组
  const user = reactive({
    name: 'Vue3小白',
    age: 20
  })
  const hobbies = reactive(['看电影', '写代码', '学Vue3'])

  // 定义方法:修改reactive数据,不用加.value,直接修改即可
  const updateData = () => {
    user.name = 'Vue3大神'
    user.age = 22
    hobbies.push('打游戏')
  }
</script>

✨ 零基础必记规则:

  1. reactive只能定义「对象/数组」,不能定义基本类型;
  2. 修改reactive数据时,无论在template还是script中,都不用加.value,直接修改属性/元素即可;
  3. 开发中:简单数据用ref,复杂数据用reactive,搭配使用效率最高。

✔️ 3. 指令系统(⭐⭐⭐⭐⭐ 必学 使用率100% 模板核心)

Vue3提供了一系列内置指令 ,指令是以 v- 开头的特殊HTML属性,写在<template>的标签上,用来实现「页面逻辑控制」,比如条件渲染、循环渲染、绑定属性等。

指令是Vue3模板语法的核心,零基础只需要学以下6个核心指令,够用所有开发场景,语法简单固定,必记必背!

✅ 通用规则:所有指令的属性值,都是 JS表达式,可以直接写变量、运算、三元运算符等。

✅ 指令1:v-bind ------ 绑定HTML属性(必学 使用率极高)

作用 :动态绑定HTML标签的任意属性,比如srchrefclassstyledisabled等,简写为 :(2026年全部用简写,必学)。

vue 复制代码
<template>
  <!-- 绑定图片src属性 -->
  <img :src="imgUrl" alt="图片">
  <!-- 绑定a标签href属性 -->
  <a :href="linkUrl">Vue3官网</a>
  <!-- 绑定class类名:布尔值控制是否生效 -->
  <div :class="{ active: isActive }">动态类名</div>
  <!-- 绑定style样式 -->
  <div :style="{ color: textColor, fontSize: '20px' }">动态样式</div>
</template>

<script setup>
  import { ref } from 'vue'
  const imgUrl = ref('https://vuejs.org/images/logo.png')
  const linkUrl = ref('https://vuejs.org/')
  const isActive = ref(true)
  const textColor = ref('#42b983')
</script>
<style>
  .active { color: red; font-weight: bold; }
</style>
✅ 指令2:v-on ------ 绑定事件(必学 使用率100%)

作用 :给HTML标签绑定事件(点击、鼠标移入、键盘按下等),简写为 @(2026年全部用简写,必学),这是实现「页面交互」的核心指令。

vue 复制代码
<template>
  <p>计数:{{ count }}</p>
  <!-- 绑定点击事件 -->
  <button @click="addCount">点击+1</button>
  <!-- 绑定事件并传递参数 -->
  <button @click="addNum(5)">点击+5</button>
  <!-- 绑定鼠标移入事件 -->
  <div @mouseenter="showMsg">鼠标移入我试试</div>
</template>

<script setup>
  import { ref } from 'vue'
  const count = ref(0)
  
  const addCount = () => { count.value += 1 }
  const addNum = (num) => { count.value += num }
  const showMsg = () => { alert('鼠标移入啦!') }
</script>

✨ 常用事件:@click(点击)、@input(输入框变化)、@change(下拉框变化)、@submit(表单提交),这4个足够应对开发需求。

✅ 指令3:v-if / v-else / v-else-if ------ 条件渲染(必学 使用率极高)

作用 :根据条件「控制元素是否渲染到页面」,条件为true则显示,false则隐藏(隐藏时会从DOM中删除元素),适合「需要切换显示/隐藏的场景」。

vue 复制代码
<template>
  <div v-if="score >= 90">优秀</div>
  <div v-else-if="score >= 80">良好</div>
  <div v-else-if="score >= 60">及格</div>
  <div v-else>不及格</div>
</template>

<script setup>
  import { ref } from 'vue'
  const score = ref(88)
</script>
✅ 指令4:v-show ------ 条件显示(必学 使用率极高)

作用 :根据条件「控制元素是否显示」,条件为true则显示,false则隐藏(隐藏时只是设置display:none,元素还在DOM中)。

✅ 零基础必懂区别:v-if vs v-show

  1. v-if:适合「不常切换」的场景(比如登录/未登录状态),性能更好;
  2. v-show:适合「频繁切换」的场景(比如弹窗显示/隐藏、开关按钮),切换速度更快;
vue 复制代码
<template>
  <button @click="isShow = !isShow">切换显示</button>
  <div v-show="isShow">我是v-show控制的元素</div>
</template>

<script setup>
  import { ref } from 'vue'
  const isShow = ref(true)
</script>
✅ 指令5:v-for ------ 循环渲染(⭐⭐⭐⭐⭐ 必学 使用率100%)

作用 :根据「数组/对象」循环渲染页面元素,比如渲染商品列表、用户列表、菜单选项,这是开发中最常用的指令之一,没有它就做不了列表展示!

vue 复制代码
<template>
  <!-- 循环数组:item是当前项,index是当前索引 -->
  <ul>
    <li v-for="(item, index) in goodsList" :key="index">
      {{ index + 1 }} - {{ item.name }} - 价格:{{ item.price }}元
    </li>
  </ul>
</template>

<script setup>
  import { reactive } from 'vue'
  // 商品列表(数组对象)
  const goodsList = reactive([
    { name: '小米手机', price: 1999 },
    { name: '华为平板', price: 2499 },
    { name: '苹果耳机', price: 1299 }
  ])
</script>

✨ 零基础必记规则:v-for必须搭配 :key 属性,:key的值必须是「唯一的」(比如index索引、数据的id),这是Vue3的硬性要求,能提升渲染性能,避免报错。

✅ 指令6:v-model ------ 双向数据绑定(⭐⭐⭐⭐⭐ 必学 使用率100%)

作用 :实现「表单元素的值」和「Vue的响应式数据」双向联动

  • 表单元素输入内容 → 响应式数据自动更新;
  • 响应式数据被修改 → 表单元素的值自动同步;
    这是开发表单页面(登录、注册、编辑信息) 的核心指令,没有它表单开发会变得极其繁琐!
vue 复制代码
<template>
  <!-- 输入框双向绑定 -->
  <input v-model="username" placeholder="请输入用户名">
  <p>你输入的用户名:{{ username }}</p>

  <!-- 密码框双向绑定 -->
  <input type="password" v-model="password" placeholder="请输入密码">

  <!-- 下拉框双向绑定 -->
  <select v-model="city">
    <option value="北京">北京</option>
    <option value="上海">上海</option>
    <option value="广州">广州</option>
  </select>
  <p>你选择的城市:{{ city }}</p>
</template>

<script setup>
  import { ref } from 'vue'
  const username = ref('')
  const password = ref('')
  const city = ref('北京')
</script>

✨ 适用表单元素:inputtextareaselectcheckboxradio,全部支持v-model双向绑定。


✔️ 4. 计算属性 & 侦听器(必学 使用率80% 提升代码质量)

这两个是Vue3的核心工具API,用来处理「复杂数据逻辑」和「监听数据变化」,能让你的代码更简洁、更高效,零基础必须掌握,这是从「入门」到「熟练」的分水岭。

✅ 计算属性 (computed) ------ 处理复杂数据逻辑(必学)

核心作用 :对已有的响应式数据进行「加工、计算、格式化」,返回新的值,并且有缓存:只有依赖的数据发生变化时,才会重新计算,否则直接返回缓存结果。

✅ 适用场景:数据格式化(比如时间戳转日期)、数据拼接(比如姓+名)、条件计算(比如总价=单价*数量),替代模板中的复杂表达式,让代码更清晰。

vue 复制代码
<template>
  <p>原价:{{ price }}元</p>
  <p>折扣价:{{ discountPrice }}元</p>
  <p>姓:{{ firstName }}</p>
  <p>名:{{ lastName }}</p>
  <p>全名:{{ fullName }}</p>
</template>

<script setup>
  import { ref, computed } from 'vue'
  const price = ref(100)
  const firstName = ref('张')
  const lastName = ref('三')

  // 定义计算属性:处理折扣价
  const discountPrice = computed(() => {
    return (price.value * 0.8).toFixed(2)
  })

  // 定义计算属性:拼接全名
  const fullName = computed(() => {
    return firstName.value + lastName.value
  })
</script>
✅ 侦听器 (watch) ------ 监听数据变化(必学)

核心作用:监听「响应式数据」的变化,当数据发生改变时,自动执行对应的逻辑,比如:请求接口、修改其他数据、弹出提示等。

✅ 适用场景:数据变化后需要执行异步操作(比如输入框搜索,输入完成后请求接口)、数据变化后需要联动修改其他数据、监听表单输入做校验等。

vue 复制代码
<template>
  <input v-model="keyword" placeholder="请输入搜索关键词">
  <p>你输入的关键词:{{ keyword }}</p>
</template>

<script setup>
  import { ref, watch } from 'vue'
  const keyword = ref('')

  // 监听单个数据的变化
  watch(keyword, (newVal, oldVal) => {
    console.log('关键词从', oldVal, '变成了', newVal)
    // 实际开发中:这里可以写搜索接口请求逻辑
    if (newVal) {
      console.log('开始搜索:', newVal)
    }
  })

  // 补充:监听多个数据的变化,用数组包裹
  const name = ref('')
  const age = ref(0)
  watch([name, age], ([newName, newAge], [oldName, oldAge]) => {
    console.log('姓名或年龄发生了变化')
  })
</script>

四、Vue3 核心进阶:组件化开发(⭐⭐⭐⭐⭐ 重中之重 企业开发标配)

✅ 核心定位:组件化是Vue3的核心思想,也是企业开发的标配 ,没有组件化就做不了大型项目!

✅ 白话解释:组件化就是把一个「完整的页面」拆分成多个「独立的、可复用的小模块」,每个模块就是一个「组件」,比如:导航栏组件、头部组件、商品列表组件、按钮组件、卡片组件。

✅ 核心优势:复用性、可维护性、可读性 ,一个组件可以在多个页面复用,修改组件时只需要改一处,所有使用的地方都会同步更新,开发大型项目时事半功倍。

✅ 零基础必懂:Vue3的.vue文件,本身就是一个独立的组件,组件化开发就是「组件嵌套组件」的过程。

✔️ 1. 组件的核心概念(零基础必懂 白话解释)

  1. 全局组件:在项目中任何地方都可以使用的组件,比如按钮、弹窗、加载动画;
  2. 局部组件:只能在当前组件中使用的组件,比如页面中的某个模块、列表项;
  3. 父组件/子组件:组件嵌套时,外层的组件是父组件,内层的组件是子组件,比如「首页组件」是父组件,「商品列表组件」是子组件;
  4. 组件通信:父组件和子组件之间的数据传递,这是组件化开发的核心问题,零基础只需要学「父子组件通信」即可,足够应对99%的开发需求。

✔️ 2. 组件的定义与使用(零基础必学 三步搞定 极简)

Vue3中定义和使用组件的方式极其简单,所有组件都在 script setup 中处理,零基础按以下三步操作即可,这是固定流程,不用记原理:

✅ 步骤1:创建组件文件(比如:src/components/HelloWorld.vue)
vue 复制代码
<!-- src/components/HelloWorld.vue -->
<template>
  <div class="hello">
    <h2>我是一个独立的Vue组件</h2>
    <p>组件可以被任意页面复用</p>
  </div>
</template>

<script setup></script>

<style scoped>
  .hello { color: #42b983; padding: 20px; border: 1px solid #eee; }
</style>
✅ 步骤2:在父组件中「导入组件」
vue 复制代码
<!-- src/views/HomeView.vue -->
<script setup>
  // 导入组件:路径是组件文件的位置
  import HelloWorld from '@/components/HelloWorld.vue'
</script>
✅ 步骤3:在父组件的<template>中「使用组件」
vue 复制代码
<template>
  <h1>我是首页(父组件)</h1>
  <!-- 直接写组件名,当作标签使用即可 -->
  <HelloWorld />
  <!-- 组件可以复用多次 -->
  <HelloWorld />
</template>

✨ 运行效果:页面会显示两个相同的HelloWorld组件内容,这就是组件的「复用性」,零基础的你已经学会了组件化开发的核心流程!

✔️ 3. 父子组件通信(⭐⭐⭐⭐⭐ 必学 使用率100% 组件化核心)

✅ 什么是组件通信?(白话版 零基础秒懂)

父组件和子组件是独立的,它们的响应式数据也是独立的,组件通信就是「父组件和子组件之间的数据传递」,这是组件化开发的核心问题,没有通信,组件就是孤立的,无法协同工作。

✅ 前端开发中,组件通信只有2种核心场景,零基础只需要学这2种,够用所有开发需求,不用学其他复杂的通信方式:

  1. 父组件 → 子组件:父传子,传递数据(比如父组件把商品数据传给子组件展示);
  2. 子组件 → 父组件:子传父,传递事件/数据(比如子组件的按钮点击事件,让父组件处理)。
✅ 场景1:父组件 → 子组件 传值(Props)【必学 使用率90%】

这是最常用的通信方式,父组件通过属性的方式给子组件传值,子组件通过defineProps接收值,语法固定,三步搞定:

✅ 父组件(传值方):给子组件绑定属性
vue 复制代码
<!-- 父组件:src/views/HomeView.vue -->
<template>
  <h1>父组件</h1>
  <!-- 给子组件绑定属性,传递数据 -->
  <Son :title="parentTitle" :list="parentList" />
</template>

<script setup>
  import Son from '@/components/Son.vue'
  import { ref, reactive } from 'vue'
  // 父组件的响应式数据
  const parentTitle = ref('我是父组件传递的标题')
  const parentList = reactive(['Vue3', '组件通信', '父传子'])
</script>
✅ 子组件(接收方):用defineProps接收父组件的传值
vue 复制代码
<!-- 子组件:src/components/Son.vue -->
<template>
  <div class="son">
    <h2>子组件</h2>
    <p>{{ title }}</p>
    <ul>
      <li v-for="(item, index) in list" :key="index">{{ item }}</li>
    </ul>
  </div>
</template>

<script setup>
  // 子组件接收父组件的传值,defineProps是Vue3内置的,无需导入
  const props = defineProps({
    title: String, // 规定传值的类型:字符串
    list: Array    // 规定传值的类型:数组
  })
  // 在script中使用:props.title / props.list
  console.log(props.title)
</script>

✨ 核心规则:子组件只能读取 父组件传递的Props值,不能直接修改,这是Vue3的单向数据流规则,避免数据混乱。

✅ 场景2:子组件 → 父组件 传值/传事件(defineEmits)【必学 使用率90%】

子组件不能直接修改父组件的数据,也不能直接触发父组件的方法,需要通过「触发事件」的方式,把数据传递给父组件,由父组件自己处理,语法固定,三步搞定:

✅ 子组件(触发方):用defineEmits定义事件,触发事件并传递数据
vue 复制代码
<!-- 子组件:src/components/Son.vue -->
<template>
  <div class="son">
    <h2>子组件</h2>
    <button @click="sendMsg">点击给父组件传值</button>
  </div>
</template>

<script setup>
  // 定义事件:defineEmits是Vue3内置的,无需导入
  const emit = defineEmits(['getChildMsg'])

  // 触发事件,并传递数据给父组件
  const sendMsg = () => {
    emit('getChildMsg', '我是子组件传递的消息', 666)
  }
</script>
✅ 父组件(接收方):监听子组件的事件,接收数据并处理
vue 复制代码
<!-- 父组件:src/views/HomeView.vue -->
<template>
  <h1>父组件</h1>
  <p>子组件传递的消息:{{ childMsg }}</p>
  <!-- 监听子组件的事件,绑定父组件的方法 -->
  <Son @getChildMsg="handleChildMsg" />
</template>

<script setup>
  import Son from '@/components/Son.vue'
  import { ref } from 'vue'
  const childMsg = ref('')

  // 处理子组件的事件,接收子组件传递的数据
  const handleChildMsg = (msg, num) => {
    childMsg.value = msg
    console.log('子组件传递的数字:', num)
  }
</script>

✨ 核心规则:子组件负责「触发事件」,父组件负责「监听事件并处理」,这是Vue3的核心通信规则,必须熟练掌握。


五、Vue3 核心生态:VueRouter4 + Pinia(⭐⭐⭐⭐⭐ 必学 企业开发标配 缺一不可)

✅ 核心定位:Vue3本身只是一个「视图层框架」,只能处理单页面的开发,而真实的前端项目都是「多页面应用」(比如首页、列表页、详情页、登录页),需要两个核心库来支撑:

  1. VueRouter4:Vue3官方路由库,负责「页面跳转、路由管理、地址栏控制」,实现多页面的切换;
  2. Pinia :Vue3官方状态管理库,负责「全局数据存储」,比如用户信息、购物车数据、全局配置,让所有页面都能共享这些数据;
    ✅ 重要性:这两个库是Vue3项目的标配,没有它们就做不了完整的项目 ,零基础必须掌握,这是从「写组件」到「做项目」的关键一步!
    ✅ 好消息:你在创建项目时已经勾选安装了这两个库,不用再手动安装,直接学习使用即可,无缝衔接!

✔️ 1. VueRouter4 路由核心(必学 使用率100% 多页面开发基础)

✅ 什么是路由?(白话版 零基础秒懂)

路由就是「地址栏的URL路径 」和「Vue组件 」之间的映射关系:比如访问 http://localhost:5173/home 显示首页组件,访问 http://localhost:5173/about 显示关于页组件,访问 http://localhost:5173/login 显示登录页组件。

VueRouter就是用来配置这个映射关系,实现「地址栏变化 → 页面组件自动切换」的核心库,不用手动操作DOM,这是Vue3实现多页面应用的唯一方式。

✅ VueRouter4 核心使用(零基础必学 精简版 够用所有场景)

你的项目中已经自动生成了路由配置文件:src/router/index.js,所有路由相关的配置都在这里,零基础只需要学「3个核心知识点」即可:

✅ 知识点1:配置路由规则(映射关系)
javascript 复制代码
// src/router/index.js
import { createRouter, createWebHistory } from 'vue-router'
// 导入页面组件
import HomeView from '../views/HomeView.vue'
import AboutView from '../views/AboutView.vue'
import LoginView from '../views/LoginView.vue'

// 路由规则:path是URL路径,component是对应的组件
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    { path: '/', name: 'home', component: HomeView }, // 默认首页
    { path: '/about', name: 'about', component: AboutView }, // 关于页
    { path: '/login', name: 'login', component: LoginView } // 登录页
  ]
})

export default router
✅ 知识点2:路由出口(显示页面组件)

在根组件 src/App.vue 中,有一个 <router-view /> 标签,这就是「路由出口」:所有匹配的页面组件,都会渲染到这个标签的位置,这是固定的,不用修改。

vue 复制代码
<!-- src/App.vue -->
<template>
  <header>
    <!-- 路由导航:页面跳转链接 -->
    <nav>
      <RouterLink to="/">首页</RouterLink>
      <RouterLink to="/about">关于</RouterLink>
      <RouterLink to="/login">登录</RouterLink>
    </nav>
  </header>
  <!-- 路由出口:页面组件渲染的位置 -->
  <router-view />
</template>
✅ 知识点3:路由跳转的2种方式(必学 使用率100%)
  1. 声明式跳转 :用 <RouterLink to="路径"> 标签,相当于原生的<a>标签,适合「页面上的跳转链接」,比如导航栏、菜单;
  2. 编程式跳转 :用 useRouter() API,在JS方法中跳转,适合「点击按钮后跳转、登录成功后跳转、表单提交后跳转」等场景,这是开发中最常用的方式。
vue 复制代码
<template>
  <!-- 声明式跳转 -->
  <RouterLink to="/home">去首页</RouterLink>
  <RouterLink to="/login">去登录</RouterLink>

  <!-- 编程式跳转:点击按钮跳转 -->
  <button @click="goHome">点击去首页</button>
  <button @click="goLogin">点击去登录</button>
</template>

<script setup>
  // 导入路由API
  import { useRouter } from 'vue-router'
  const router = useRouter()

  // 编程式跳转方法
  const goHome = () => { router.push('/home') }
  const goLogin = () => { router.push('/login') }
</script>

✔️ 2. Pinia 状态管理核心(必学 使用率100% 全局数据共享)

✅ 什么是状态管理?(白话版 零基础秒懂)

状态就是「Vue的响应式数据」,状态管理就是「把多个页面/组件都需要用到的全局数据,统一存储在一个地方,所有页面都能访问和修改这些数据」。

✅ 适用场景:用户信息(登录后的用户名、头像、token)、购物车数据、全局主题配置、语言切换,这些数据需要在多个页面共享,用Pinia存储是最优选择。

✅ 为什么不用Vuex?Vuex是Vue2的状态管理库,Vue3官方已经废弃了Vuex,推荐使用 Pinia,Pinia的语法更简洁、更轻量化,零基础更容易上手,功能也更强大。

✅ Pinia 核心使用(零基础必学 精简版 够用所有场景)

你的项目中已经自动生成了Pinia配置文件:src/stores/counter.js,所有全局数据都存储在src/stores/目录下,零基础只需要学「3个核心知识点」即可,语法极其简单:

✅ 知识点1:创建Pinia仓库(存储全局数据)
javascript 复制代码
// src/stores/user.js 新建一个用户仓库
import { defineStore } from 'pinia'
import { ref } from 'vue'

// 定义仓库:第一个参数是仓库名(唯一),第二个参数是仓库的内容
export const useUserStore = defineStore('user', () => {
  // 1. 定义全局响应式数据(相当于Vue2的state)
  const username = ref('')
  const token = ref('')
  const isLogin = ref(false)

  // 2. 定义方法:修改全局数据(相当于Vue2的mutations/actions)
  const login = (userInfo) => {
    username.value = userInfo.name
    token.value = userInfo.token
    isLogin.value = true
  }

  const logout = () => {
    username.value = ''
    token.value = ''
    isLogin.value = false
  }

  // 3. 导出数据和方法,供其他页面使用
  return { username, token, isLogin, login, logout }
})
✅ 知识点2:在组件/页面中「使用Pinia仓库的数据和方法」
vue 复制代码
<template>
  <div v-if="userStore.isLogin">
    <p>欢迎你:{{ userStore.username }}</p>
    <button @click="logout">退出登录</button>
  </div>
  <div v-else>
    <p>请先登录</p>
    <button @click="login">模拟登录</button>
  </div>
</template>

<script setup>
  // 导入创建好的仓库
  import { useUserStore } from '@/stores/user'
  // 获取仓库实例
  const userStore = useUserStore()

  // 模拟登录
  const login = () => {
    userStore.login({ name: 'Vue3小白', token: '123456789' })
  }

  // 退出登录
  const logout = () => {
    userStore.logout()
  }
</script>

✨ 核心优势:在任何页面/组件中,只要导入并使用这个仓库,就能访问和修改全局数据,数据是实时同步的,不用手动传递,这就是全局状态管理的魅力!


六、Vue3 零基础避坑指南(2026最新 高频踩坑点 看完少走99%弯路)

✅ 所有坑都是零基础小白学Vue3时最容易踩的高频坑,全部是实战总结,每一个坑都对应一个解决方案,看完立刻避开,节省大量调试时间,这是零基础的「保命指南」!

❌ Vue3零基础 TOP10 高频踩坑点(必记 看完不踩坑)

  1. 修改ref定义的响应式数据时,忘记加.value ,导致页面不更新,解决:<script>中修改ref数据必须加.value;
  2. 用reactive定义基本类型数据(比如reactive(0)),导致数据不是响应式的,解决:基本类型用ref,对象/数组用reactive;
  3. v-for循环时忘记加:key属性,导致控制台报错、渲染性能差,解决:v-for必须搭配:key,值用index或唯一id;
  4. 子组件直接修改父组件传递的Props值,导致控制台报错,解决:子组件只能读Props,不能改,要改就通过事件传给父组件;
  5. 导入组件时路径写错(比如大小写错误、路径层级错误),导致组件找不到,解决:VS Code会自动提示路径,尽量用自动补全;
  6. 定义方法时函数名写错 ,或者调用方法时方法名写错,导致点击事件无效,解决:检查函数名是否一致;
  7. 用v-model绑定非表单元素(比如div、p),导致报错,解决:v-model只能绑定表单元素;
  8. 路由跳转时路径写错,导致页面空白,解决:检查路由配置的path是否和跳转的路径一致;
  9. Pinia仓库中定义的数据,忘记在return中导出,导致页面访问不到,解决:所有需要外部访问的数据/方法都要在return中导出;
  10. 计算属性中写了异步逻辑(比如请求接口),导致报错,解决:计算属性只能写同步逻辑,异步逻辑用watch或方法。

✅ Vue3零基础学习黄金原则(必看 受益匪浅)

  1. 先完成,再完美:零基础开发时,先实现功能,不用纠结代码是否最优,功能实现后再慢慢优化,不要因为追求完美而卡住进度;
  2. 多敲代码,少看视频:看视频只能学思路,敲代码才能练手感,所有案例一定要亲手敲一遍,运行成功后再做修改,眼会手不会是零基础的大忌;
  3. 善用官方文档:Vue3的官方文档是最好的学习资料,清晰易懂、案例丰富,遇到问题先查文档,比搜百度更靠谱;
  4. 不要死记硬背:Vue3的语法都是有规律的,理解「数据驱动视图」「组件化」的核心思想,语法自然就记住了,死记硬背容易忘;
  5. 从小项目入手:零基础不要一开始就做大型项目,先做小项目(比如待办清单、商品列表),吃透基础后再逐步升级,循序渐进。

七、Vue3零基础完整学习路线(2026最新 科学合理 不走弯路)

✅ 阶段一:夯实基础(本次内容,3-5天 重中之重)

✅ 吃透Vue3的核心语法:模板语法、插值表达式、响应式数据(ref/reactive)、指令系统(v-model/@click/v-for等);

✅ 掌握计算属性、侦听器,能处理复杂数据逻辑;

✅ 学会组件化开发:组件的定义、导入、使用,父子组件通信(Props/emit);

✅ 掌握VueRouter4和Pinia的基础使用,能实现多页面跳转和全局数据共享;

✅ 目标:能独立开发简单的Vue3组件和页面,理解Vue3的核心思想。

✅ 阶段二:实战巩固(2-3天 核心 从语法到项目)

✅ 实战项目1:开发一个「待办清单(TodoList)」,实现添加、删除、修改、筛选待办事项,用到v-for、v-model、组件通信、本地存储;

✅ 实战项目2:开发一个「商品列表页」,实现商品展示、分页、搜索、筛选,用到VueRouter、Pinia、计算属性、watch;

✅ 核心目标:把所有基础语法融会贯通,能独立完成一个完整的Vue3小项目,具备解决基础开发问题的能力。

✅ 阶段三:进阶学习(5-7天 2026企业刚需 加分项)

✅ 学习Vue3的「生命周期钩子」,理解组件的创建、挂载、更新、销毁过程;

✅ 学习Vue3的「插槽」,实现组件的灵活复用;

✅ 学习「TypeScript+Vue3」整合开发,这是2026年企业的硬性要求;

✅ 学习Vue3的「组合式API进阶」,比如provide/inject、toRefs、computed进阶;

✅ 目标:能开发企业级规范的Vue3项目,具备对接真实开发需求的能力。

✅ 阶段四:生态拓展(按需学习 提升开发效率)

✅ 学习Vue3的UI组件库:Element Plus(PC端)、Vant4(移动端),这是企业开发的标配,能快速搭建页面;

✅ 学习Axios请求库,实现Vue3项目和后端接口的联动(对接你之前学的Node.js+MySQL);

✅ 学习Vue3的打包部署,把项目打包成静态文件,部署到服务器;

✅ 目标:形成「Vue3+TS+Element Plus+Axios+Node.js+MySQL」的完整全栈技术闭环,能独立开发商业项目。


最后:写给Vue3零基础小白的心里话

恭喜你!学完本次Vue3基础版,你已经成功入门了目前前端最主流的框架,也掌握了前端开发的核心基础技能。

从只会写原生HTML/CSS/JS,到能独立搭建Vue3项目、写组件、做页面交互、实现多页面跳转,你已经完成了「前端新手」到「前端入门工程师」的蜕变。这份能力,不仅能让你快速上手前端开发,还能为后续学习TS、全栈开发打下坚实的基础。

Vue3的学习之路,没有想象中那么难,它的核心思想就是「数据驱动视图」和「组件化开发」,所有语法都是为了让你更轻松地写代码。你不需要一开始就成为大神,只需要一步一个脚印,多敲代码、多做项目、多解决问题,慢慢就会发现,Vue3的开发其实很简单。

2026年的前端开发,Vue3依然是主流,掌握Vue3,你就拥有了进入前端行业的核心敲门砖。坚持下去,你会发现,前端开发不仅是一份工作,更是一种创造的乐趣------用代码把想法变成看得见的页面,这种成就感,是无价的。

加油!零基础的你,也能学好Vue3,也能成为优秀的前端工程师。你的前端之路,才刚刚开始,未来可期!💪


附:Vue3基础版核心知识点速查表(零基础必备 随时查阅 按使用率排序)

知识点模块 核心语法/API 作用 使用率
响应式数据 ref() / reactive() 定义响应式变量/对象/数组 100%
模板语法 {{ 变量/表达式 }} 渲染数据到页面 100%
核心指令 v-model / @click / v-for / v-if / :src 双向绑定、事件、循环、条件、属性绑定 100%
组件化开发 组件导入/使用、defineProps、defineEmits 组件复用、父子通信 100%
计算属性/侦听器 computed() / watch() 数据计算、监听数据变化 80%
路由 VueRouter4、router.push()、RouterLink 多页面跳转、路由管理 100%
状态管理 Pinia、defineStore() 全局数据共享、状态管理 100%
核心思想 数据驱动视图、组件化开发 Vue3的核心设计理念 贯穿始终
相关推荐
十里-21 小时前
vue.js 2前端开发的项目通过electron打包成exe
前端·vue.js·electron
雨季6661 天前
构建 OpenHarmony 简易文字行数统计器:用字符串分割实现纯文本结构感知
开发语言·前端·javascript·flutter·ui·dart
小北方城市网1 天前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
console.log('npc')1 天前
vue2 使用高德接口查询天气
前端·vue.js
2401_892000521 天前
Flutter for OpenHarmony 猫咪管家App实战 - 添加支出实现
前端·javascript·flutter
天马37981 天前
Canvas 倾斜矩形绘制波浪效果
开发语言·前端·javascript
天天向上10241 天前
vue3 实现el-table 部分行不让勾选
前端·javascript·vue.js
qx091 天前
esm模块与commonjs模块相互调用的方法
开发语言·前端·javascript
Mr Xu_1 天前
前端实战:基于Element Plus的CustomTable表格组件封装与应用
前端·javascript·vue.js·elementui
0思必得01 天前
[Web自动化] 爬虫之API请求
前端·爬虫·python·selenium·自动化