掌握Vue3必学的前端三大基石

📅 2026/7/8 13:24:21 👁️ 阅读次数 📝 编程学习
掌握Vue3必学的前端三大基石

1. 前言:为什么学习 Vue 3 需要前端三件套基础?

Vue 3 是一个用于构建用户界面的渐进式 JavaScript 框架。要真正掌握 Vue 3,必须先理解其构建基石:JavaScript(JS)HTMLCSS。这三个模块分别负责逻辑、结构和样式,共同构成了现代 Web 开发的基础。本文将带你快速回顾这三个模块的核心基础,并说明它们如何在 Vue 3 中协同工作。

2. HTML:结构骨架

HTML(HyperText Markup Language)是网页的骨架,用于定义内容的结构和语义。

2.1 基础标签与功能

  • 文档结构<!DOCTYPE html><html><head><body>
  • 内容标签<h1><h6>(标题)、<p>(段落)、<div>(块容器)、<span>(行内容器)。
  • 表单与交互<input><button><form><label>
  • 列表与表格<ul>/<ol>/<li>(列表)、<table><tr><td>(表格)。

2.2 在 Vue 3 中的应用

Vue 3 的模板语法基于 HTML,并扩展了指令来实现动态渲染。以下是最常用的核心指令详解:

v-if / v-else-if / v-else:条件渲染

根据表达式的真假值来决定是否渲染元素。当条件为假时,元素不会被渲染到 DOM 中,而是被销毁或跳过创建。

  • 作用:根据数据状态条件性地渲染或移除元素,适用于切换频率较低、切换成本较高的场景。
  • 适用场景:登录状态判断、权限控制、多条件分支展示(如用户角色切换不同界面)。
  • 与 v-show 的区别v-if是真正的条件渲染,切换时会销毁和重建元素及其绑定的事件和子组件;v-show只是简单地切换 CSS 的display属性,元素始终存在于 DOM 中。频繁切换的场景推荐使用v-show
<!-- v-if 示例 --> <div v-if="isLoggedIn">欢迎回来,用户!</div> <div v-else-if="isLoading">加载中...</div> <div v-else>请先登录。</div>
v-for:列表渲染

基于源数据多次渲染元素或模板块。必须搭配:key使用,帮助 Vue 追踪每个节点的身份,从而高效地复用和重新排序现有元素。

  • 作用:遍历数组、对象或数字,为每一项生成对应的 DOM 元素。
  • 适用场景:渲染商品列表、用户评论、导航菜单、表格行等动态数据集合。
  • 注意事项v-forv-if同时出现在同一个元素上时,v-if优先级更高(Vue 3 中)。但官方不推荐两者同时使用,建议用<template>包裹或在计算属性中预先过滤数据。
<!-- v-for 示例 --> <ul> <li v-for="item in items" :key="item.id">{{ item.name }}</li> </ul>
v-bind 与 v-on:动态绑定与事件处理

v-bind(简写:)用于动态地将一个或多个属性或组件 prop 绑定到表达式。v-on(简写@)用于监听 DOM 事件并执行对应的 JavaScript 代码。

  • v-bind 作用:动态设置元素的hrefsrcclassstyledisabled等属性,使属性值可以根据数据变化自动更新。
  • v-on 作用:绑定点击、输入、提交等用户交互事件,连接模板与组件方法。
  • 适用场景v-bind常用于图片路径绑定、按钮禁用状态、动态类名切换;v-on常用于表单提交、按钮点击、键盘事件等。
<!-- v-bind 和 v-on 示例 --> <div id="app"> <h1>{{ title }}</h1> <img :src="imageUrl" :alt="imageAlt" /> <button @click="count++">点击了 {{ count }} 次</button> </div>

除了上述指令,v-model是 Vue 3 中实现双向数据绑定的核心指令,常用于表单输入元素:

<template> <div> <input v-model="message" placeholder="输入内容" /> <p>你输入的是:{{ message }}</p> </div> </template> <script setup> import { ref } from 'vue'; const message = ref(''); </script>
  • 作用v-model会自动将表单输入值与响应式数据同步,用户输入改变数据,数据变化也会更新视图。
  • 适用元素<input><textarea><select>等表单控件。
  • 修饰符.lazy(延迟同步)、.number(转为数字)、.trim(去除首尾空格)。

3. CSS:样式美化

CSS(Cascading Style Sheets)用于控制网页的视觉表现,包括布局、颜色、字体等。

3.1 基础概念与功能

  • 选择器:类选择器(.class)、ID 选择器(#id)、元素选择器(tag)。
  • 盒模型marginborderpaddingwidth/height
  • 布局displayblockinlineflexgrid)、positionfloat
  • 响应式:媒体查询(@media)实现不同屏幕尺寸的适配。

3.2 在 Vue 3 中的应用

Vue 3 支持多种 CSS 集成方式,开发者可以根据项目需求灵活选择:

  • 单文件组件(SFC):在<style>标签内编写组件作用域样式。配合scoped属性,样式只会作用于当前组件,避免全局样式污染。
  • 动态样式:通过:style绑定内联样式对象,或:class动态切换类名。适合根据数据状态实时调整元素外观,如高亮选中项、切换主题色等。
  • CSS 模块与预处理器:支持scopedmodule,以及 Sass、Less、Stylus 等预处理器。模块化 CSS 让样式与组件逻辑天然内聚,便于维护和复用。
  • 深度选择器:使用:deep()伪类可以穿透 scoped 作用域,修改子组件的内部样式,在组件库二次封装时尤为实用。
<template> <div :class="{ active: isActive }" :style="{ color: textColor }"> 动态样式示例 </div> </template> <style scoped> .active { font-weight: bold; } </style>

4. JavaScript:逻辑核心

JavaScript 是 Vue 3 的"大脑",负责处理数据、逻辑和交互。

4.1 基础语法与核心功能

  • 变量与数据类型letconstvar;字符串、数字、布尔、数组、对象等。
  • 函数:函数声明、箭头函数、高阶函数、闭包。
  • 数组与对象方法mapfilterreduceObject.keys等。
  • 异步编程Promiseasync/awaitfetch
  • DOM 操作document.querySelectoraddEventListenersetAttribute等。

4.2 在 Vue 3 中的核心应用

Vue 3 的 Composition API 大量使用现代 JavaScript 特性,以下是其在 Vue 3 中的核心应用方式:

  • 响应式数据ref()用于包装基本类型值,reactive()用于包装对象。它们是 Vue 3 响应式系统的基础,任何对这些数据的修改都会自动触发视图更新。
  • 计算属性与侦听器computed()基于依赖缓存计算结果,只有依赖变化时才重新计算,适合衍生状态(如过滤列表、合计金额);watch()watchEffect()用于在数据变化时执行副作用,如异步请求、DOM 操作。
  • 生命周期钩子onMounted()在组件挂载到 DOM 后执行,适合初始化第三方库、发送网络请求;onUpdated()在 DOM 更新后触发;onUnmounted()用于清理定时器、取消请求等资源释放操作。
  • 组合函数:将可复用的逻辑封装为自定义 Hook(如useMouse()useFetch()),实现逻辑关注点分离,让组件代码更清晰、更易测试。
import { ref, computed, onMounted } from 'vue'; export default { setup() { // 响应式数据 const count = ref(0); const doubleCount = computed(() => count.value * 2); // 生命周期 onMounted(() => { console.log('组件已挂载'); }); // 方法 const increment = () => { count.value++; }; return { count, doubleCount, increment }; } };

5. 三者在 Vue 3 中的协同示例

下面是一个简单的 Vue 3 单文件组件,展示了 HTML、CSS、JavaScript 如何协同工作:

<template> <div class="counter"> <h2>计数器示例</h2> <p>当前计数:{{ count }}</p> <button @click="increment">增加</button> <button @click="reset">重置</button> </div> </template> <script setup> import { ref } from 'vue'; const count = ref(0); const increment = () => { count.value++; }; const reset = () => { count.value = 0; }; </script> <style scoped> .counter { padding: 20px; border: 1px solid #ccc; border-radius: 8px; text-align: center; } button { margin: 0 5px; padding: 8px 16px; background-color: #42b983; color: white; border: none; border-radius: 4px; cursor: pointer; } button:hover { background-color: #33a06f; } </style>

在这个组件中:

  • HTML(模板):定义了组件的结构,使用 Vue 指令(@click{{ }})绑定数据和事件。
  • JavaScript(脚本):使用ref创建响应式数据,并定义方法。
  • CSS(样式):为组件添加样式,scoped确保样式只作用于当前组件。

6. 学习路径建议

  1. 夯实基础:先掌握 HTML 常用标签、CSS 盒模型与布局、JavaScript 核心语法(ES6+)。
  2. 理解 Vue 3 核心概念:响应式原理、组件化、指令、生命周期。
  3. 动手实践:从简单的计数器、待办列表开始,逐步构建复杂组件。
  4. 学习工具链:Vite、Vue Router、Pinia(状态管理)。
  5. 参考官方文档:Vue 3 官方文档是最权威的学习资源。

7. 总结

HTML、CSS、JavaScript 是学习 Vue 3 的必备基础。HTML 提供结构,CSS 负责样式,JavaScript 处理逻辑。Vue 3 通过模板语法、响应式系统和组件化模型,将三者优雅地结合在一起。建议你在学习 Vue 3 时,随时回顾这三个基础模块,并多在项目中实践,这样才能真正融会贯通。