news 2026/4/28 19:32:12

在 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/4/27 21:57:39

AnimeGANv2与Stable Diffusion对比:轻重模型如何选?

AnimeGANv2与Stable Diffusion对比&#xff1a;轻重模型如何选&#xff1f; 1. 引言&#xff1a;为何需要风格迁移技术选型&#xff1f; 随着AI生成艺术的普及&#xff0c;将真实照片转换为二次元动漫风格已成为图像生成领域的重要应用场景。无论是社交媒体头像定制、虚拟角色…

作者头像 李华
网站建设 2026/4/27 4:22:38

HunyuanVideo-Foley开源生态:围绕项目形成的工具链全景图

HunyuanVideo-Foley开源生态&#xff1a;围绕项目形成的工具链全景图 1. 背景与技术定位 1.1 视频音效生成的技术演进 在传统视频制作流程中&#xff0c;音效设计&#xff08;Foley&#xff09;是一项高度依赖人工的专业工作。从脚步声、关门声到环境背景音&#xff0c;每一个…

作者头像 李华
网站建设 2026/4/27 19:03:46

AnimeGANv2教程:将运动照片转换成动漫风格的动态效果

AnimeGANv2教程&#xff1a;将运动照片转换成动漫风格的动态效果 1. 章节概述 随着深度学习在图像生成领域的不断突破&#xff0c;AI驱动的风格迁移技术正逐步走入大众视野。其中&#xff0c;AnimeGANv2 作为轻量高效的照片转动漫模型&#xff0c;凭借其出色的画风还原能力与…

作者头像 李华
网站建设 2026/4/17 23:16:23

亲测通义千问2.5-7B-Instruct:表情识别效果超预期

亲测通义千问2.5-7B-Instruct&#xff1a;表情识别效果超预期 近年来&#xff0c;大模型在多模态任务中的表现日益突出&#xff0c;尤其是在图像理解与语义推理结合的场景中展现出巨大潜力。本文聚焦于使用通义千问2.5-7B-Instruct模型进行人脸表情识别的实际测试&#xff0c;…

作者头像 李华
网站建设 2026/4/25 14:13:14

SUBLIME TEXT实战:从零搭建高效前端开发环境

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个SUBLIME TEXT配置指南&#xff0c;详细说明如何安装和配置常用插件&#xff08;如Emmet、SublimeLinter、ColorPicker等&#xff09;&#xff0c;优化编辑器性能&#xff…

作者头像 李华