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. 忘记安装 sass 导致 .scss 文件无法编译 → 控制台报错 Failed to resolve loader: sass。
2. 在 main.ts 中全局引入 JS 组件(如 import {MDCTopAppBar} from '@material/top-app-bar')后未正确实例化,导致事件监听重复。本课程坚持纯样式引入策略,避免此问题。

2.5 环境初始化流程总览

下图概括了从空目录到可运行项目的完整初始化步骤,以及各环节的输出物。该流程后续所有定制工作均依赖此基座。
开发环境初始化流程图 开发环境初始化流程 1. 创建 Vite 项目 2. 安装 MDC + Sass 3. main.ts 中引入 MDC CSS 4. 创建 theme.scss 覆盖变量 5. 构建验证 (npm run build) 6. 运行测试 (npm run dev) 初始化完成后,项目根目录应有 node_modules、src/main.ts、src/styles/theme.scss 及其他 Vite 模板文件

2.6 验证初始化成果

执行以下命令启动开发服务器并打开浏览器:

npm run dev