当前位置: 首页 > news >正文

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

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

1 正常创建项目 (我选择的是Pages Router 而非 AppRoute)
2 修改配置文件
next.config.ts

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

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

两个常用页面 尝试
index.tsx

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

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>);
}

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

相关文章:

  • 再来1章linux 系列-11 系统的延迟任务及定时任务 at ,crontab,mail;/etc/at.allow,/etc/at.deny
  • 卷积神经网络(二)
  • 济南国网数字化培训班学习笔记-第二组-1节-输电线路工程
  • 数字隔离器,筑牢AC-DC数字电源中的“安全防线”
  • vue2如何二次封装表单控件如input, select等
  • 空闲列表:回收和再利用
  • Java发展史及版本详细说明
  • Postgresql源码(143)统计信息基础知识(带实例)
  • 中心极限定理(CLT)习题集 · 答案与解析篇
  • SpringSecurity源码解读AbstractAuthenticationProcessingFilter
  • Gazebo 仿真环境系列教程(一):环境安装与基础使用
  • vscode vue文件单行注释失效解决办法
  • JVM性能优化之年轻代参数设置
  • 抗体工程改造系列:调节抗体功能的Fc改造
  • 编译原理(5):链接
  • 今日CSS学习浮动->定位
  • 数据分析案例:医疗健康数据分析
  • 机器学习(8)——主成分分析
  • Restful接口学习
  • [密码学实战]在Linux中实现SDF密码设备接口
  • 中越海警2025年第一次北部湾联合巡逻圆满结束
  • 牛市早报|商务部:目前中美之间未进行任何经贸谈判
  • 中国铝业首季“开门红”:净利润超35亿元,同比增加近六成
  • 天问三号计划2028年前后发射实施,开放20千克质量资源
  • 金湘军辞去山西省省长职务
  • 海南陵水一酒店保洁员调包住客港币,被判刑一年六个月