Vue3 學習教程,從入門到精通,Vue 3 + Tailwind CSS 全面知識點與案例詳解(31)

Vue 3 + Tailwind CSS 全面知識點與案例詳解


一、Vue 3 核心語法知識點
1. Vue 3 基礎
  • 創建 Vue 3 項目
    使用 Vite 創建項目:
    npm create vue@latest
    # 選擇需要的特性(如 TypeScript、Vue Router)
    
  • 響應式數據
    使用 refreactive
    import { ref, reactive } from 'vue';
    const count = ref(0); // 響應式變量
    const user = reactive({ name: 'Alice', age: 25 }); // 響應式對象
    
  • 生命周期鉤子
    import { onMounted, onUpdated } from 'vue';
    onMounted(() => {console.log('組件掛載完成');
    });
    onUpdated(() => {console.log('組件更新完成');
    });
    
  • 組件化開發
    創建組件 components/HelloWorld.vue
    <template><div class="text-2xl font-bold text-blue-500">Hello Vue 3!</div>
    </template>
    
  • 路由(Vue Router)
    安裝并配置路由:
    npm install vue-router@4
    
    router/index.js
    import { createRouter, createWebHistory } from 'vue-router';
    const routes = [{ path: '/', component: () => import('../views/Home.vue') },{ path: '/about', component: () => import('../views/About.vue') }
    ];
    export default createRouter({ history: createWebHistory(), routes });
    
2. Tailwind CSS 集成
  • 安裝依賴
    npm install -D tailwindcss postcss autoprefixer
    npx tailwindcss init -p  # 生成 tailwind.config.js 和 postcss.config.js
    
  • 配置 Tailwind
    tailwind.config.js
    module.exports = {content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],theme: {extend: {colors: { 'brand': '#3490dc' }, // 自定義顏色spacing: { '128': '32rem' },   // 自定義間距},},plugins: [],
    };
    
  • 引入 Tailwind 樣式
    src/index.css
    @tailwind base;
    @tailwind components;
    @tailwind utilities;
    
    main.js
    import './index.css';
    

二、Tailwind CSS 核心語法知識點
1. 實用工具類
  • 布局類
    <div class="flex justify-center items-center h-screen">居中容器</div>
    <div class="grid grid-cols-3 gap-4">三列網格布局</div>
    
  • 顏色與背景
    <div class="bg-blue-500 text-white p-4">藍色背景白字</div>
    <div class="bg-gradient-to-r from-red-500 to-yellow-500">漸變背景</div>
    
  • 文本樣式
    <h1 class="text-4xl font-bold underline">大標題</h1>
    <p class="text-gray-700 text-lg">灰色段落</p>
    
  • 邊框與陰影
    <div class="border border-gray-300 rounded-lg shadow-md p-4">帶邊框和陰影的卡片</div>
    
  • 交互效果
    <button class="bg-blue-500 hover:bg-blue-700 text-white py-2 px-4 rounded">懸停按鈕
    </button>
    
  • 響應式設計
    <div class="block sm:hidden md:block">在小屏隱藏,中屏顯示</div>
    
2. 自定義配置
  • 擴展主題
    tailwind.config.js
    theme: {extend: {fontFamily: { sans: ['Inter', 'sans-serif'] }, // 添加字體animation: { spin: 'spin 2s linear infinite' }, // 自定義動畫},
    },
    
  • 插件
    安裝插件(如 @tailwindcss/forms):
    npm install -D @tailwindcss/forms
    
    tailwind.config.js
    plugins: [require('@tailwindcss/forms')],
    

三、綜合案例:Vue 3 + Tailwind CSS 儀表盤頁面
1. 案例目標
  • 創建一個響應式儀表盤頁面,包含導航欄、卡片組件、按鈕交互和動畫效果。
2. 代碼實現

src/views/Dashboard.vue

<template><div class="min-h-screen bg-gray-100"><!-- 導航欄 --><nav class="bg-white shadow-md p-4 flex justify-between items-center"><h1 class="text-2xl font-bold text-blue-600">儀表盤</h1><div class="space-x-4"><button class="bg-blue-500 hover:bg-blue-700 text-white py-2 px-4 rounded">首頁</button><button class="bg-gray-300 hover:bg-gray-400 text-gray-800 py-2 px-4 rounded">用戶</button></div></nav><!-- 主體內容 --><main class="p-6 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"><!-- 卡片組件 --><div v-for="card in cards" :key="card.title" class="bg-white rounded-lg shadow p-4"><h2 class="text-xl font-semibold mb-2">{{ card.title }}</h2><p class="text-gray-600">{{ card.description }}</p><!-- 動態類綁定 --><div :class="`mt-4 text-sm ${card.status === '活躍' ? 'text-green-500' : 'text-red-500'}`">狀態: {{ card.status }}</div></div></main><!-- 動畫按鈕 --><div class="flex justify-center mt-8"><button @click="animateButton" :class="`bg-purple-500 hover:bg-purple-600 text-white py-3 px-6 rounded transition-transform duration-300 ${isAnimating ? 'scale-110' : 'scale-100'}`">點擊動畫</button></div></div>
</template><script setup>
import { ref } from 'vue';// 響應式數據
const cards = ref([{ title: '用戶統計', description: '展示用戶增長趨勢', status: '活躍' },{ title: '銷售額', description: '本月銷售額分析', status: '活躍' },{ title: '錯誤日志', description: '最近的系統錯誤', status: '停用' },
]);const isAnimating = ref(false);// 動畫觸發
const animateButton = () => {isAnimating.value = true;setTimeout(() => {isAnimating.value = false;}, 300);
};
</script>
3. 代碼注釋說明
  • 導航欄:使用 flex 布局實現響應式導航欄,結合 shadow-md 添加陰影效果。
  • 卡片組件:通過 grid 布局實現響應式多列卡片,使用 v-for 動態渲染。
  • 動態類綁定:根據卡片狀態動態切換文字顏色(綠色/紅色)。
  • 動畫按鈕:通過 ref 控制按鈕的 scale 變化,實現點擊縮放動畫。

四、常見問題與解決方案
  1. Tailwind 樣式未生效
    • 檢查 tailwind.config.jscontent 路徑是否正確。
    • 確保 index.css 已正確引入到 main.js
  2. 響應式設計失效
    • 檢查是否遺漏 viewport meta 標簽:
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
  3. 動畫性能問題
    • 使用 transitionduration 控制動畫流暢度,避免過度渲染。

五、總結

通過本案例,你掌握了:

  • Vue 3 的核心語法(響應式數據、組件化、路由)。
  • Tailwind CSS 的實用工具類和自定義配置。
  • 如何結合 Vue 3 和 Tailwind CSS 構建響應式、交互式界面。

下一步建議

  • 學習 Vue 3 的 Composition API 和 Pinia 狀態管理。
  • 探索 Tailwind CSS 的插件生態(如 @tailwindcss/typography)。
  • 實踐更復雜的項目(如管理系統、電商網站)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92451.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92451.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92451.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android中RecyclerView基本使用

一、RecyclerView 核心概念1. 基本組件關系2. 核心組件作用Adapter&#xff1a;數據與視圖的橋梁LayoutManager&#xff1a;控制布局方式&#xff08;線性/網格/瀑布流&#xff09;ViewHolder&#xff1a;緩存視圖組件ItemDecoration&#xff1a;添加分割線等裝飾ItemAnimator&…

A100用transformers推理gpt-oss

A100本地用transformers推理gpt-oss GPT-oss試用 gpt-oss有兩個原生配置是目前&#xff08;2025-8-8&#xff09;Ampere系列顯卡不支持的&#xff0c;分別是默認的MXFP4量化&#xff0c;以及Flash-attn V3。tranformers推理是比較慢的&#xff0c;可以用于研究模型本身&#x…

虛擬手機號工具使用

背景&#xff1a;注冊部分國外應用時需要國外手機號驗證&#xff0c;例如在注冊cursor時需要國外手機號 解決&#xff1a;使用虛擬手機號網頁進行驗證 https://temp-number.com/ 選擇自己需要的國家 選擇一個手機號 復制手機號到自己的app注冊頁面 并發送消息&#xff0c;然后…

【線程池】壓測確定線程池合適的參數

【線程池】壓測確定線程池合適的參數【一】案例說明【二】明確線程池核心參數及優化目標【1】線程池核心參數&#xff08;需壓測驗證的關鍵參數&#xff09;【2】優化目標【三】壓測前準備【1】環境搭建【2】線程池初始配置&#xff08;基于經驗值&#xff09;【3】壓測工具與監…

GPT OSS 雙模型上線,百度百舸全面支持快速部署

GPT OSS 是 OpenAI 推出的重量級開放模型&#xff0c;專為強推理能力、智能體任務及多樣化開發場景設計&#xff0c;標志著大模型在開放性與實用性上的重要突破。該系列包含兩款高性能模型&#xff1a;參數規模為 117B 的 GPT?OSS?120B 和 21B 的 GPT?OSS?20B。二者皆采用 …

C++高頻知識點(十七)

文章目錄81. 你對智能指針的了解82. 一元、二元仿函數的區別和使用背景一元仿函數二元仿函數83. 描述Linux下文件刪除的原理84. 什么是菱形繼承&#xff1f;有什么問題&#xff0c;怎么解決&#xff1f;解決菱形繼承問題85. IO多路復用是什么&#xff1f;selectpollepollselect…

如何優雅的使用進行參數校驗

在spring里面有一個注解 Validated可以在方法的入參里面這樣寫//方法 getActivityFlag(RequestBody Validated QueryActivityDto queryActivityDto) //參數詳情NotBlank(message "userId不能為空")private String userId;NotNull(message "storeId不能為空&q…

Java學習第一百一十部分——CI/CD

目錄 一、前言簡介 二、基本信息 三、優勢價值 四、核心流程 五、技術棧&#xff08;工具矩陣&#xff09; 六、最佳實踐 七、與DevOps關系 八、挑戰對策 九、使用建議 十、總結歸納 一、前言簡介 CI/CD 的本質是&#xff1a;通過自動化流水線&#xff0c;實現代碼從提…

關于 Cocoapods 使用

一、Podfile & .podspec 文件 1、Podfile 1.1. 什么是 pod 簡單來說&#xff0c;一個 pod 就是 xcode 里面的一個 dependency&#xff1a; Anyway&#xff0c;pod 就是第三方庫的意思。一個 pod 就是指一個第三方庫。 1.2. Podfile 有什么用 Podfile 可以理解為就是…

編程速遞:2025 年巴西 Embarcadero 會議,期待您的到來

每個英雄都有一段充滿奮斗的旅程&#xff0c;這段旅程引領他走向榮耀&#xff0c;而開發者英雄的旅程是2025年巴西Embarcadero大會的重點&#xff0c;以慶祝Delphi成立30周年。網站現已上線巴西Embarcadero在世界上最受期待的Delphi發展英雄會議召開前90天&#xff0c;推出了Em…

DevOps簡單教程應用

文章目錄概念一、環境準備二、gitlab配置三、.gitlab-ci.yml文件配置概念 Devops是一個概念&#xff0c;就是邊開發邊測試&#xff0c;能夠大大提升開發效率&#xff0c;本文使用pycharmgitlab實現一個簡單的DevOps流程 一、環境準備 需要一個測試環境&#xff0c;模擬部署&…

華為流程管理體系構建與落地 之—— 業務流程規劃【附全文閱讀】

這部分內容聚焦華為業務流程管理&#xff0c;詳細闡述了流程規劃、設計、運營、評估與優化的具體方法和內容&#xff0c;為企業構建和完善流程管理體系提供了全面的指導。流程規劃分類方法&#xff1a;介紹 POS、OES、OMS 等分類法&#xff0c;如 POS 法按規劃、運營、支持劃分…

Android 項目:畫圖白板APP開發(零)——功能介紹(筆鋒,分頁,縮放,多指,硬件加速等)

一、前言 本系列將全面的介紹一些有關Android 畫圖方面的知識。筆觸功能包括&#xff1a;顏色、粗細、透明度、筆鋒、橡皮&#xff1b;繪圖功能包括&#xff1a;分頁、縮放、多指、撤銷恢復、筆畫加速。別看功能這么多&#xff0c;簡單的部分會花較少篇幅介紹&#xff0c;著重會…

香橙派 RK3588 部署千問大模型 Qwen2-VL-2B 推理視頻

演示視頻 香橙派RK3588部署千問大模型Qwen2-VL-2B推理視頻一、場景假設 視頻輸入為一條網絡流&#xff0c;利用大模型對視頻中的圖像幀進行推理。由于大模型推理耗時長&#xff0c;無法對每幀都進行推理&#xff0c;因此采用跳幀推理的方式&#xff1a;當推理完一幀后&#xf…

排序概念以及插入排序

一、排序基本概念1.就地排序&#xff1a;使用恒定的額外空間來產生輸出就地排序只是在原數組空間進行排序處理&#xff0c;也就是輸入的數組和得到的數組是同一個2.內部排序和外部排序&#xff1a;待排序數據可以一次性載入到內存中為內部排序&#xff0c;反之數據量過大就是外…

Webpack 核心配置與最佳實踐指南

Webpack 是現代前端工程化的核心工具,理解其配置原理和優化技巧對開發效率至關重要。 一、Webpack 基礎架構 1、核心概念關系圖 2、核心概念詳解 概念 作用 示例配置 Entry 應用入口起點 entry: ‘./src/index.js’ Output 編譯結果輸出位置 output.path: path.resolve(__d…

GISBox私有云+SaaS:安全協同的地理智能平臺

一、概述 GISBox&#xff08;GIS 工具箱&#xff09;是一套能夠對GIS 影像、地形、傾斜攝影進行場景編輯、切片轉化、分發服務的 GIS 工具箱。同時&#xff0c;GISBox還支持私有云并一鍵開啟SaaS服務。 二、什么是私有云&#xff1f; 私有云服務是一種為企業或組織量身定制的…

代理人工智能的隱藏威脅

代理型人工智能的自主性令人興奮&#xff0c;但事實并非如此。主動性越高&#xff0c;不可預測性就越強&#xff0c;這為嚴重的、往往被忽視的安全風險打開了大門。從指令劫持到數字供應鏈的連鎖故障&#xff0c;代理型人工智能不僅智能&#xff0c;而且在不受控制的情況下非常…

SonarQube 掃描多個微服務模塊

SonarQube 掃描多個微服務模塊 在使用 SonarQube/SonarCloud 掃描多個微服務模塊時&#xff0c;核心目標是??確保每個微服務模塊被獨立分析??&#xff0c;并在 SonarQube 界面中以獨立項目展示結果。以下是具體實現方案&#xff0c;分場景說明&#xff1a; ??一、前提條…

當前主流且經過市場驗證的開源 BI 系統推薦

以下是當前主流且經過市場驗證的開源 BI 系統推薦&#xff0c;結合技術特性、適用場景和行業實踐&#xff0c;為不同需求提供針對性解決方案&#xff1a;一、綜合型開源 BI 平臺1. Apache Superset&#xff08;Apache 2.0 協議&#xff09;核心優勢&#xff1a;全場景覆蓋&…