当前位置: 首页 > 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密码设备接口
  • 李公明 | 一周画记:生活就是抵抗
  • 严正交涉!我驻日使馆:如日方采取新的挑衅举动,中方必坚决反制
  • 出现这几个症状,说明你真的老了
  • 徐丹任武汉大学药学院院长:研究领域在国际上处领跑地位
  • 全红婵/陈芋汐夺得跳水世界杯总决赛女子双人10米台冠军
  • 5月1日,多位省级党委书记调研旅游市场、假期安全等情况