news 2026/6/9 22:23:17

在 Vue 3 项目中使用 Tailwind CSS

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在 Vue 3 项目中使用 Tailwind CSS

本文详细介绍了在Vue3项目中集成TailwindCSS的完整流程:

  1. 通过Vite创建Vue3项目;
  2. 安装TailwindCSS及相关依赖;
  3. 配置tailwind.config.js和样式文件;
  4. 在组件中使用实用类实现响应式布局、暗色模式等功能;
  5. 推荐安装常用插件优化表单、排版等组件;
  6. 提供性能优化建议和TypeScript支持方案。

文章包含具体配置示例和常见问题解决方案,突出TailwindCSS在Vue3项目中的优势:快速开发、响应式设计简便、减少自定义CSS等,为开发者提供完整的集成指南。


在 Vue 3 项目中使用 Tailwind CSS


1. 创建 Vue 3 项目(如果尚未创建)

# 使用 Vite 创建 Vue 3 项目 npm create vue@latest # 或 npm init vue@latest # 选择需要的特性,TypeScript、Router、Pinia 等按需选择

2. 安装 Tailwind CSS

# 进入项目目录 cd your-project # 安装 Tailwind 及相关依赖 npm install -D tailwindcss postcss autoprefixer # 初始化 Tailwind 配置 npx tailwindcss init -p

3. 配置 Tailwind CSS

tailwind.config.js

/** @type {import('tailwindcss').Config} */ export default { content: [ "./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}", ], theme: { extend: { // 自定义主题扩展 colors: { primary: '#3490dc', secondary: '#ffed4a', danger: '#e3342f', } }, }, plugins: [], }

创建 src/style.css

@tailwind base; @tailwind components; @tailwind utilities; /* 自定义样式可以写在这里 */

4. 在 main.js/ts 中引入样式

import { createApp } from 'vue' import App from './App.vue' import './style.css' // 引入 Tailwind createApp(App).mount('#app')

5. 基本使用示例

App.vue

<template> <div class="min-h-screen bg-gray-100"> <!-- 响应式设计 --> <div class="container mx-auto px-4 py-8"> <!-- 文字样式 --> <h1 class="text-4xl font-bold text-center text-primary mb-8"> Vue 3 + Tailwind CSS </h1> <!-- 网格系统 --> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"> <div v-for="item in items" :key="item.id" class="bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow" > <h2 class="text-xl font-semibold text-gray-800 mb-2"> {{ item.title }} </h2> <p class="text-gray-600"> {{ item.description }} </p> <button @click="handleClick(item.id)" class="mt-4 px-4 py-2 bg-primary text-white rounded hover:bg-blue-600 transition-colors" > 点击按钮 </button> </div> </div> <!-- Flex 布局 --> <div class="flex flex-col sm:flex-row gap-4 mt-8 items-center justify-center"> <button class="px-6 py-2 bg-green-500 text-white rounded"> 主要操作 </button> <button class="px-6 py-2 bg-gray-300 text-gray-700 rounded"> 次要操作 </button> </div> </div> </div> </template> <script setup> import { ref } from 'vue' const items = ref([ { id: 1, title: '卡片1', description: 'Tailwind CSS 实用工具类' }, { id: 2, title: '卡片2', description: '响应式设计示例' }, { id: 3, title: '卡片3', description: 'Vue 3 组合式 API' }, ]) const handleClick = (id) => { alert(`点击了卡片 ${id}`) } </script>

6. 常用实用技巧

提取组件类(使用 @apply)

/* style.css 中 */ .btn-primary { @apply px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600 transition-colors; } .card { @apply bg-white rounded-lg shadow-md p-6; }

响应式设计

vue

<div class="text-sm md:text-base lg:text-lg"> 响应式文字大小 </div> <div class="w-full md:w-1/2 lg:w-1/3"> 响应式宽度 </div>

暗色模式

tailwind.config.js

module.exports = { darkMode: 'class', // 或 'media' // ... 其他配置 }

使用:

vue

<div class="bg-white dark:bg-gray-800 text-gray-900 dark:text-white"> 暗色模式支持 </div> <!-- 切换暗色模式 --> <button @click="toggleDark"> 切换模式 </button>

7. 推荐插件

bash

npm install -D @tailwindcss/forms @tailwindcss/typography @tailwindcss/aspect-ratio

tailwind.config.js

module.exports = { plugins: [ require('@tailwindcss/forms'), require('@tailwindcss/typography'), require('@tailwindcss/aspect-ratio'), ], }

8. 性能优化

// tailwind.config.js module.exports = { // 生产环境移除未使用的样式 purge: [ './index.html', './src/**/*.{vue,js,ts,jsx,tsx}', ], // 或使用 content(Tailwind v3+) content: [ './index.html', './src/**/*.{vue,js,ts,jsx,tsx}', ], }

9. TypeScript 支持(可选)

安装类型声明:

npm install -D @types/tailwindcss

常见问题

  1. 样式不生效:检查样式文件是否正确引入

  2. HMR 不工作:确保tailwind.config.js中的content配置正确

  3. 自定义颜色不生效:确保在extend中正确配置


优势总结

  • ✅ 快速原型开发

  • ✅ 响应式设计简便

  • ✅ 一致性设计系统

  • ✅ 减少自定义 CSS

  • ✅ 优秀的 Vue 3 集成


这样你就成功在 Vue 3 项目中集成了 Tailwind CSS!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 15:51:05

S32DS使用环境下多核启动与驱动加载机制讲解

深入S32DS多核启动与驱动加载&#xff1a;从复位向量到系统协同的实战解析你有没有遇到过这样的场景&#xff1f;在S32DS中配置好了一个双核项目&#xff0c;主核跑得稳稳当当&#xff0c;但从核就是“纹丝不动”——没有日志输出、无法打断点、甚至JTAG都检测不到它的运行痕迹…

作者头像 李华
网站建设 2026/6/9 21:26:49

STM32实现RS485通信的完整指南

从零构建工业级RS485通信&#xff1a;STM32实战全解析你有没有遇到过这样的场景&#xff1f;设备明明写好了串口协议&#xff0c;下载进STM32后却收不到任何数据&#xff1b;或者通信时断时续&#xff0c;一到现场就“抽风”——电机一启动&#xff0c;信号满屏乱码。如果你正在…

作者头像 李华
网站建设 2026/6/5 19:32:04

AnimeGANv2性能优化:减少CPU资源占用的方法

AnimeGANv2性能优化&#xff1a;减少CPU资源占用的方法 1. 背景与问题分析 随着轻量级AI模型在边缘设备和低算力环境中的广泛应用&#xff0c;如何在保证推理质量的前提下降低资源消耗成为关键挑战。AnimeGANv2作为一款高效的图像风格迁移模型&#xff0c;因其8MB的极小模型体…

作者头像 李华
网站建设 2026/6/5 20:39:14

HunyuanVideo-Foley未来展望:下一代音效生成模型的发展方向

HunyuanVideo-Foley未来展望&#xff1a;下一代音效生成模型的发展方向 1. 技术背景与行业痛点 随着短视频、影视制作和虚拟内容创作的爆发式增长&#xff0c;高质量音效的需求日益凸显。传统音效制作依赖人工配音师或音效库检索&#xff0c;流程繁琐、成本高昂且难以实现“声…

作者头像 李华
网站建设 2026/6/5 20:53:53

惊艳!用「AI印象派艺术工坊」把旅行照变成莫奈风格水彩画

惊艳&#xff01;用「AI印象派艺术工坊」把旅行照变成莫奈风格水彩画 关键词&#xff1a;AI图像风格迁移、OpenCV计算摄影、非真实感渲染、WebUI画廊、零依赖部署 摘要&#xff1a;本文介绍如何使用基于OpenCV算法构建的「AI印象派艺术工坊」镜像&#xff0c;将普通旅行照片一键…

作者头像 李华
网站建设 2026/6/9 18:12:01

EZREMOVE官网新手指南:5分钟学会代码清理

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个新手友好的代码清理工具&#xff0c;提供简单的图形界面和引导式操作。支持一键扫描和清理&#xff0c;附带详细的操作说明和示例项目。工具应自动标记潜在问题&#xff0…

作者头像 李华