Vue 3 Composition API 深度指南
从 Options API 到 Composition API 的思维转变,掌握 Vue 3 的响应式核心 —— ref、reactive、computed、watch 以及可组合函数的实战套路。
作为一个前端开发者,我一直想搭建自己的个人博客。在比较了 Next.js、Astro、VitePress 等方案后,最终选择了 Nuxt 3。理由很简单:
创建 Nuxt 3 项目非常简单:
npx nuxi@latest init ninja-blog
cd ninja-blog
pnpm install
pnpm dev
打开 http://localhost:3000,一个基础的 Nuxt 应用就跑起来了。
Nuxt 3 使用文件系统路由——pages/ 目录下的文件结构自动生成 URL 路由,完全不需要手动配置 router.js:
| 文件路径 | 生成路由 |
|---|---|
pages/index.vue | / |
pages/about.vue | /about |
pages/blog/[slug].vue | /blog/xxx(动态) |
pages/[...slug].vue | /任意/多级/路径(全捕获) |
其中 [...slug].vue 的 [] 是动态参数,... 表示捕获任意层级的路径。搭配 @nuxt/content,它能自动将 content/ 目录下的 .md 文件映射为页面。
<script setup lang="ts">
const route = useRoute()
const { data: page } = await useAsyncData('page-' + route.path, () => {
return queryContent(route.path).findOne()
})
if (!page.value) {
throw createError({ statusCode: 404, message: 'Page not found' })
}
</script>
<template>
<ContentRenderer v-if="page" :value="page" />
</template>
Nuxt 3 配合 Tailwind CSS 有两种方式:
@nuxtjs/tailwindcss 模块(推荐常规项目)// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@nuxtjs/tailwindcss'],
})
一行搞定,模块自动处理 PostCSS 配置和内容扫描。
如果你需要完全控制 Tailwind 版本和 PostCSS 配置,可以手动安装:
pnpm add -D tailwindcss postcss autoprefixer
然后在 nuxt.config.ts 中配置:
export default defineNuxtConfig({
postcss: {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
},
})
Nuxt 的 @nuxtjs/color-mode 模块提供了开箱即用的暗色/亮色切换:
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@nuxtjs/color-mode'],
colorMode: {
classSuffix: '',
preference: 'system', // 跟随系统
fallback: 'dark', // 默认暗色
},
})
在组件中使用:
<script setup lang="ts">
const colorMode = useColorMode()
function toggleTheme() {
colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark'
}
</script>
<template>
<button @click="toggleTheme">
{{ colorMode === 'dark' ? '☀️' : '🌙' }}
</button>
</template>
结合 Tailwind 的 darkMode: 'class' 配置,在 CSS 中定义 .dark 下的变量就能实现全局主题切换。
用 Nuxt 3 搭建博客的体验非常流畅。文件路由 + Nuxt Content 的组合让内容管理变得简单,让你专注于写文章本身。
下一步计划:
代码如忍术,练习多了自然得心应手 🍥
从 Options API 到 Composition API 的思维转变,掌握 Vue 3 的响应式核心 —— ref、reactive、computed、watch 以及可组合函数的实战套路。
告别 XML Layout,拥抱 Kotlin 声明式 UI —— Compose 的核心概念、状态管理、布局系统和导航一网打尽。
掌握 SwiftUI 的 View 协议、@State/@Binding 状态体系、布局三件套和 MVVM 架构——适合有 iOS 基础想转型的开发者。