探索未来博客的可能:Next.js + TypeScript + Tailwind CSS 开源模板
import { GetStaticProps } from 'next';
import { ParsedUrlQuery } from 'node:querystring';
import { NextSeo } from 'next-seo';
import { useRouter } from 'next/router';
import React from 'react';
import Script from 'next/script';
import siteConfig from '/content/siteConfig.json';
// 定义页面的查询参数类型
export interface IPostQuery extends ParsedUrlQuery {
slug: string;
}
// 获取静态props,这里可以添加获取外部数据的逻辑
export const getStaticProps: GetStaticProps = async (context) => {
// 这里可以获取数据,并返回给页面
return {
props: {
// 需要传递给组件的props
},
// 如果页面是动态的,可以设置不同的静态生成路径
revalidate: 10, // 单位是秒,设置缓存重新验证的时间
};
};
// 定义页面组件
const Post: React.FC = () => {
const router = useRouter();
const { slug } = router.query as IPostQuery;
return (
<>
<NextSeo
title={`${siteConfig.title} - ${slug}`}
description={`Post description for ${slug}`}
/>
<Script src="https://platform.twitter.com/widgets.js" />
{/* 页面内容 */}
<div className="prose lg:prose-lg mx-auto">
{/* 文章内容 */}
</div>
</>
);
};
export default Post;
这个代码实例展示了如何使用Next.js、TypeScript和Tailwind CSS创建一个博客文章页面,同时使用了Next SEO库来优化页面的SEO,以及如何使用Next Script库来添加社交媒体组件。代码中包含了获取静态props的方法,这是Next.js的一个强大功能,可以在构建时获取数据,从而使页面更容易维护。
评论已关闭