Vue3 Tailwind CSS
在 Vue 项目中使用 Tailwind CSS 是一个很流行的选择,因为它提供了一种实用工具优先的方法来编写 CSS,使得你可以直接在类名中应用样式,这种方法使得样式编写更加简洁和直观。
Tailwind CSS 教程:https://www.runoob.com/tailwindcss/tailwindcss-tutorial.html
Tailwind CSS 官网:https://tailwindcss.com/
Github 地址:https://github.com/tailwindlabs/tailwindcss
Tailwind CSS 是一个功能强大的 CSS 框架,它通过实用工具优先的方法使得样式编写更加简洁和模块化。与传统的基于类的 CSS 框架不同,Tailwind 提供了一组低级实用工具类,这些类可以直接在 HTML 元素上使用,以便快速、灵活地构建自定义设计。
以下是一个使用 Vue 3 和 Tailwind CSS 的完整入门示例,展示了如何将 Tailwind CSS 与 Vue 3 集成并使用其功能来构建响应式界面。
安装 Vue 3 和 Tailwind CSS
首先,确保你已经安装了 Vue 3 和 Tailwind CSS。
安装 Vue 3 在终端中执行 npm create vue@latest 命令创建一个新的 Vue 3 项目:
npm create vue@latest Vue.js - The Progressive JavaScript Framework -> 请输入项目名称: … vue-tailwind-app -> 是否使用 TypeScript 语法? … 否 / 是 -> 是否启用 JSX 支持? … 否 / 是 -> 是否引入 Vue Router 进行单页面应用开发? … 否 / 是 -> 是否引入 Pinia 用于状态管理? … 否 / 是 -> 是否引入 Vitest 用于单元测试? … 否 / 是 -> 是否要引入一款端到端(End to End)测试工具? › 不需要 -> 是否引入 ESLint 用于代码质量检测? › 否 正在初始化项目 /runoob-test/vue-tailwind-app... 项目初始化完成,可执行以下命令: cd vue-tailwind-app npm install npm run dev
执行以上命令需要设置一些初始化的选项,使用方向键选择即可:
进入初始化的目录 vue-tailwind-app,安装依赖:
cd vue-tailwind-app npm install
安装 Tailwind CSS 安装 Tailwind CSS 和相关依赖:
npm install -D tailwindcss postcss autoprefixer npx tailwindcss init
创建完成,目录结构如下:
配置 Tailwind CSS 打开 tailwind.config.js 文件并修改为:
实例
export default {
content: [
"./index.html",
"./src/**/*.{vue,js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
添加 Tailwind 指令 在 src/assets 目录下创建一个 styles.css 文件,并添加以下内容:
/* src/assets/styles.css */ @tailwind base; @tailwind components; @tailwind utilities;
然后在 src/assets/main.js 中导入该文件:
import './styles.css
创建 Vue 组件和样式
现在,你可以开始编写你的 Vue 3 组件,并使用 Tailwind CSS 来美化页面。
App.vue
这是应用的主要组件,它包含了 Vue 3 和 Tailwind CSS 的基础用法。
实例
<div class="min-h-screen bg-gray-50 flex items-center justify-center p-6">
<div class="w-full max-w-md bg-white p-8 rounded-xl shadow-lg">
<h1 class="text-2xl font-semibold text-center text-gray-800 mb-6">
Vue 3 + Tailwind CSS 示例
</h1>
<!-- 输入框和按钮 -->
<div class="mb-4">
<label for="name" class="block text-sm font-medium text-gray-700">用户名</label>
<input
type="text"
id="name"
v-model="username"
placeholder="请输入用户名"
class="mt-2 w-full px-4 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
/>
</div>
<button
@click="submitForm"
class="w-full bg-blue-500 text-white py-2 rounded-md shadow-md hover:bg-blue-600 transition duration-200"
>
提交
</button>
<!-- 显示用户名 -->
<p v-if="submitted" class="mt-4 text-center text-gray-600">欢迎, {{ username }}!</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
submitted: false
};
},
methods: {
submitForm() {
if (this.username) {
this.submitted = true;
} else {
alert('请输入用户名');
}
}
}
};
</script>
<style scoped>
/* 这里的样式是自定义的,如果需要的话 */
</style>
点我分享笔记