总结下最近学的TailWind和Nest的心得
五一上来,还算是比较悠闲的,捣鼓了自己很多喜欢的东西,也学了很多自己喜欢的技术,就比如这篇说的 Tailwind CSS 和 NestJS。
本应该是 Tailwind 一学完就发布一篇学习心得的(虽然只是浅学了点),或者是等 NestJS 学完再一起发。前者因为自己最近琢磨新花样给耽搁了,后者则是如今时间实在告急了,已经没有时间继续啃 NestJS 了。实验项目现已进入了联调阶段,但我应用层的框架还有很多 Bug,很多底层代码也没有看完,所以接下来的时间必须全力冲刺实验室项目了!
在闭关之前,先把这份心得整理出来。
📚 学习资源
💡 初识 Tailwind CSS v4
今天去翻官方文档时发现 Tailwind 又更新了,我当时学的时候是 4.2,现在已经迭代到 4.3 了。
Tailwind 是一个以 Utility(实用工具)为主的 CSS 框架,我们一般叫它“原子类框架”。它的理念和早期的 Bootstrap 略有神似,都是通过在 HTML 标签上添加现成的类名来实现样式渲染。
但 Tailwind 有一个无与伦比的优势:超强的可移植性。从 Vue 迁移到 React,基本上只需要无脑 copy 代码即可。更棒的是,如果你在网上看到别人用 Tailwind 写出了酷炫的样式,你可以直接复制人家的源码标签从而实现“一键盗走样式”,毕竟所有的设计逻辑都明明白白地写在类名上了。
🛠️ 在 Vue 项目中快速起步
在 Vue 3 + Vite 环境下使用 Tailwind v4 非常丝滑:
1. 安装依赖
首先安装 Tailwind 核心包及其配套的 Vite 插件:
bash
pnpm install tailwindcss @tailwindcss/vite
2. 配置 Vite 插件
在 vite.config.ts (或 .js) 文件中引入插件:
```javascript
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({ plugins: [ tailwindcss(), ], }) ```
3. 引入入口
在你的全局 style.css 文件首行加入导入指令即可:
css
@import "tailwindcss";
🔥 小贴士:别忘了去 VS Code 插件市场下载 Tailwind CSS IntelliSense,这样在写代码时就能享受到丝滑的类名语法提示和颜色预览了。
🧬 核心指令详解
Tailwind v4 推崇 CSS-First 理念,通过几个强大的 CSS 指令直接在样式表中进行深度定制。
🎨 @theme
用于自定义全局设计变量。语法遵循标准的 CSS 变量格式(以 -- 开头)。
css
@theme {
--color-dark-blue: oklch(21.613% 0.09471 275.052);
--font-arial: Arial, sans-serif;
}
细节建议:在定义色值时推荐使用 oklch 格式,它能让颜色的视觉一致性更强,对人眼更为友好。
🛠️ @utility
用于定义自定义的原子工具类,创建后可以直接在 HTML 标签上使用。
css
@utility grid-cols-autofit {
grid-template-columns: repeat(auto-fit, minmax(13.75rem, 1fr));
}
🧱 @layer
用于控制 CSS 样式的级联分层。Tailwind 默认为了保持纯净会重置浏览器样式(比如 h1-h6 都没有加粗)。如果项目里大量需要加粗,与其每次手写 font-bold,不如直接在 base 层统一覆盖:
css
@layer base {
h1, h2, h3 {
font-weight: 700;
}
}
✨ @apply
可以将一连串冗长的 Tailwind 原子类“打包”成一个传统的原生 CSS 类,用于组件样式的统一收口。
css
@layer components {
.button {
@apply bg-fuchsia-700 py-3 px-7 inline-block rounded-full hover:bg-fuchsia-600 transition-colors;
}
}
🎭 @variant
v4 极其实用的语法糖。它允许你在自定义 CSS 逻辑中嵌套应用 Tailwind 的变体状态(如深色模式、Hover 态等)。 ```css @utility feibie-div { background-color: black;
/ 当系统或页面主题为深色模式时,背景变灰 / @variant dark { background-color: grey; } } ```
🎉 阶段成果展示
最后展示一下这几天跟着视频边学边做敲出来的实战成果:

啊啊啊啊啊,写着写着发现又说多了! 时间实在是真的不够用了,马上得去打电话跟进实验室的联调进度。那 NestJS 的坑我就先刨到这儿了,等哪天项目搞定、闲下来学完的时候,我再来补发一篇心得吧!
诸君回见!👋