"use client"; import { BlogCardGrid } from "@/components/blog-card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Search, TrendingUp, Clock, Heart, Eye } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import config from '../../config'; import type { Label } from "@/models/label"; import type { Post } from "@/models/post"; import { listPosts } from "@/api/post"; import { useEffect, useState } from "react"; export default function Home() { const [labels, setLabels] = useState([]); const [posts, setPosts] = useState([]); useEffect(() => { listPosts().then(data => { setPosts(data.data); console.log(posts); }).catch(error => { console.error("Failed to fetch posts:", error); }); }, []); return (
{/* Hero Section */}
{/* 背景装饰 */}
{/* 容器 - 关键布局 */}

Snowykami's Blog

{config.metadata.description}

{/* 搜索框 */}
{/* 热门标签 */}
{['React', 'TypeScript', 'Next.js', 'Node.js', 'AI', '前端开发'].map((tag) => ( {tag} ))}
{/* 主内容区域 */}
{/* 容器 - 关键布局 */}
{/* 主要内容区域 */}
{/* 文章列表标题 */}

最新文章

{/* 博客卡片网格 */} {/* 加载更多按钮 */}
{/* 侧边栏 */}
{/* 关于我 */} 关于我
S

{config.owner.name}

{config.owner.motto}

{config.owner.description}

{/* 热门文章 */} 热门文章 {posts.slice(0, 3).map((post, index) => (
{index + 1}

{post.title}

{post.viewCount} {post.likeCount}
))}
{/* 标签云 */} 标签云
{['React', 'TypeScript', 'Next.js', 'Node.js', 'JavaScript', 'CSS', 'HTML', 'Vue', 'Angular', 'Webpack'].map((tag) => ( {tag} ))}
); }