使用Next.js构建单页面React应用

最近遇到一个问题 突然要一个单页面的项目 用惯了Next.js 而 create-react-app 又不推荐且不灵活 最终找发现Nextjs也支持单页面应用 以下是使用Next.js构建单页面React应用过程

1 正常创建项目 (我选择的是Pages Router 而非 AppRoute)

2 修改配置文件
next.config.ts

javascript 复制代码
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
    output: "export",
    distDir: "dist", //默认打包后目录名 `build`
};

export default nextConfig;

3 删除 src/api 目录 单页面应用 不支持api路由功能 放着会警告

两个常用页面 尝试
index.tsx

javascript 复制代码
import Link from "next/link";
import { useRouter } from "next/router";

export default function Home() {
    const router = useRouter();

    // 编程式导航示例
    const goToAbout = () => {
        router.push("/about"); // 客户端跳转
    };

    return (
        <div>
            <h1>SPA Home Page</h1>
            {/* 声明式导航 */}
            <Link href='/about'>
                About Page
            </Link>
            {/* 编程式导航 */}
            <button onClick={goToAbout}>Go to About</button>
        </div>
    );
}

about.tsx

javascript 复制代码
import Link from "next/link";
import { useRouter } from "next/router";

export default function AboutPage() {
    const router = useRouter();

    const goToAbout = () => {
        router.push("/");
    };

    return (
        <div>
            <h1>SPA AboutPage</h1>
            <Link href='/'>Home Page</Link>
            <button onClick={goToAbout}>Go to Home</button>
        </div>
    );
}

在两个页面间跳转 发现已经不需加载 实现了单页面应用

相关推荐
金融小白数据分析之路16 小时前
绍兴市镇街echarts 制作
前端·数据库·echarts
Zacks_xdc17 小时前
【从0开发一个 Agent】第十七章:完整项目回顾与架构终章
人工智能·架构·agent·next.js
Slice_cy17 小时前
Mint 自研框架设计与实现:从重复开发走向配置驱动(二)
前端·后端·架构
greenbbLV17 小时前
积分兑换商城供应商挑选:避坑要点与靠谱选择解析
前端·小程序
张元清17 小时前
React useDropZone Hook:搭建一个文件拖放区(2026)
javascript·react.js
a11177617 小时前
3D 建筑编辑器 Pascal Editor THreeJS 开源
前端·3d·html
jason_yang17 小时前
写给女儿的英语App
前端·人工智能
思码梁田18 小时前
CSS 定位详解:从相对到固定,掌握网页布局的核心
前端·javascript·css
勇往直前plus18 小时前
Vite :从双击 HTML 到现代前端开发
前端·html
muddjsv18 小时前
CSS 高级选择器精讲:伪类、伪元素、逻辑伪类与选择器解耦规范
前端·css