2. 开发环境与工程初始化
本章将带领你完成从零到可运行的工程搭建:创建项目脚手架、安装必要依赖、引入 Material Components Web 组件库并配置主题变量。这是后续所有槽位定制工作的重要基础,也是确保组件样式和交互行为符合 Material 规范的前提。
2.1 创建项目
推荐使用 Vite + Vue 3 作为开发环境,它提供极快的热更新和按需编译能力。在终端中执行以下命令创建项目:
npm create vite@latest topappbar-slots-demo -- --template vue-ts
cd topappbar-slots-demo
npm install
选择 vue-ts 模板可同时获得 Vue 3 组合式 API 和 TypeScript 类型支持,便于后续对组件接口进行类型约束。
2.2 安装依赖
需要安装两个核心依赖包:
- material-components-web — Material Design 标准组件库,提供 TopAppBar 等组件的样式与逻辑。
- sass — 用于编译自定义主题变量文件(MDC 底层依赖 Sass)。
npm install material-components-web
npm install -D sass
安装完成后,可在 package.json 中检查版本是否与下表一致(推荐使用稳定版):
| 依赖 | 推荐版本 | 说明 |
|---|---|---|
vue |
^3.4.0 | 框架核心 |
material-components-web |
^14.0.0 | 提供原生 Web 组件 |
sass |
^1.77.0 | CSS 预处理器 |
typescript |
^5.4.0 | 类型检查(项目自带) |
2.3 引入 Material 组件库
在 src/main.ts 中全局注册 MDC 组件的 CSS 样式和基础主题变量:
import { createApp } from 'vue'
import App from './App.vue'
// 引入 Material 组件库核心样式
import 'material-components-web/dist/material-components-web.min.css'
// 引入自定义主题变量(下节创建)
import './styles/theme.scss'
createApp(App).mount('#app')
注意:不要直接注册所有 JavaScript 组件(例如 mdc.topAppBar),本课程将采用“仅引用样式,自行实现 Slot 结构”的方式,保持对 DOM 的完全控制。
2.4 配置主题
创建 src/styles/theme.scss 文件,覆盖 MDC 主题色和顶部导航栏高度变量:
// 基础主题色
$mdc-theme-primary: #6200ee;
$mdc-theme-secondary: #03dac6;
$mdc-theme-background: #fff;
// TopAppBar 专属变量
$mdc-top-app-bar-height: 64px;
$mdc-top-app-bar-rows: 1; // 单行模式
$mdc-top-app-bar-desktop-rows: 1;
$mdc-top-app-bar-mobile-breakpoint: 600px;
// 导入 MDC 主题引擎
@import 'material-components-web/material-components-web';
此文件会在构建时被 Sass 编译成标准 CSS,所有 MDC 组件的颜色和布局都会自动使用你覆盖的变量值。
❗ 常见错误:
1. 忘记安装
2. 在
1. 忘记安装
sass 导致 .scss 文件无法编译 → 控制台报错 Failed to resolve loader: sass。2. 在
main.ts 中全局引入 JS 组件(如 import {MDCTopAppBar} from '@material/top-app-bar')后未正确实例化,导致事件监听重复。本课程坚持纯样式引入策略,避免此问题。
2.5 环境初始化流程总览
下图概括了从空目录到可运行项目的完整初始化步骤,以及各环节的输出物。该流程后续所有定制工作均依赖此基座。
2.6 验证初始化成果
执行以下命令启动开发服务器并打开浏览器:
npm run dev