# PRNext 0.1.18：保留页面状态和更强的生产运行时

PRNext 0.1.18-alpha 改进了页面、构建和部署之间发生的情况。您可以返回到表单状态完好无损的页面，优先考虑实际导航并重用更多编译工作。在服务器上，共享缓存和资源限制可以更好地控制每个请求所允许的工作。

此版本还添加了项目创建命令、对应用程序中安装的 TypeScript 7 编译器的支持以及与官方 React 编译器的可选集成。以下部分按用例解释了更改，然后是更改日志和应用程序检查。

## 从一个可以运行的项目开始

prnext create 命令准备一个最小的 App Router 应用程序及其文件、开发脚本和配置。 TypeScript 是默认值； --js 创建一个 JavaScript 项目。结果为您提供了开发、生产构建和服务应用程序的一致起点。

创建仅接受缺失或完全空的目录。它拒绝替换现有项目。 --no-install 选项在不安装依赖项或访问网络的情况下写入文件，包括将项目添加到具有自己的包管理器的工作区时。

```sh
npx @thomas.f/prnext create my-app
cd my-app
npm run dev
```

这些命令需要 PRNext 0.1.18-alpha 或更高版本。

## 返回页面而不重新开始

在应用程序路由器中，PRNext 通过 React 活动保留非活动分支。返回到相同安装布局下的授权目的地可以恢复组件状态，例如选定的过滤器、部分完成的表单或打开的面板。当分支隐藏时，效果停止。

默认预算是四个非活动分支两分钟，在相关布局之间共享。这是参赛和时间限制，而不是 RAM 保证。 navigationCache 设置允许您调整保留或禁用它。

保留状态仍然受数据新鲜度和授权的影响。服务器操作、router.refresh() 和观察到的身份更改会使非活动分支无效。后退和前进导航在显示保留的目的地之前请求新的航班。自定义身份验证后，应用程序必须触发适当的刷新。完整文档重新加载不会保留仅保存在内存中的草稿。

## 优先点击并从丢失的连接中恢复

由悬停、键盘焦点和触摸触发的预取优先于视口扫描。实际导航优先于推测工作。 Queues and concurrent prefetches are bounded;数据保护程序、缓慢的连接和隐藏的选项卡限制了猜测。带有 prefetch={false} 的链接也不会在悬停或聚焦时触发预取。

当应用程序导航 GET 由于传输而失败时，PRNext 可以在 30 秒预算内恢复，最多尝试 3 次。当前页面及其安装状态在恢复期间保持可见。较新的导航会取消较旧的尝试，并且重新连接会使用当前 cookie 请求新数据，而不是使用保存的私有响应。

恢复永远不会自动重播服务器操作或其他 POST。即使反应丢失，突变也可能已经完成。应用程序仍然负责在提供另一个操作之前检查结果。 This is not persistent offline support;可选的 useOffline 挂钩允许应用程序显示自己的连接指示器。

## 通过完整响应后备发送航班更改

应用程序导航可以协商流式差分飞行。当浏览器具有可重用基础时，PRNext 会发送重建准确的新响应所需的差异。保留的基础是有界的，并与部署和身份验证上下文相关联。

缺失、过期或不兼容的底座会产生完整的飞行响应。无效的增量允许在没有增量的情况下重试该导航 GET。不会重播操作。目标是当内容支持重用时避免重复字节，而不使导航依赖于缓存命中。

缓冲区和保留碱基有明确的限制。 HTML 和流处理还避免了不必要的聚合二进制副本。服务器响应仍然包括 React 渲染、应用程序代码和数据访问；差异传输并不保证每个页面都有相同的改进。

## 启用 React 编译器并检查其实际决策

ReactCompiler 选项启用捆绑的官方 React 编译器。默认情况下它是禁用的。转换的目标是开发和生产中的应用程序浏览器组件和应用程序客户端组件的隔离服务器渲染图。服务器组件、服务器操作模块、npm 依赖项和页面服务器图仍处于此转换之外。

您可以通过compilationMode：注释和use memo指令逐步采用编译器。 use no memo 指令排除单个函数。 prnext 编译器报告标识了观察到的函数、优化或跳过决策以及编译器的原因。它还区分了缓存转换的重用。这些是编译决策，而不是接口速度的测量。

符合条件的 JavaScript 图存储为二进制元数据和内容寻址的 blob。校验和已验证；丢失、损坏或同时被逐出的条目将成为普通的高速缓存未命中并被重建。生产构建可以缩短本地 CSS 模块和动画名称、压缩内部导出并重用共享块，同时保留公共接口。

## 使用应用程序中安装的 TypeScript

当安装在具有平台依赖项的应用程序中时，PRNext 通过其官方本机可执行文件支持 TypeScript 7。生产检查、prnext 类型检查和开发诊断都使用该编译器。 PRNext 在构建期间不会下载编译器。 TypeScript 5 和 6 保留其编译器 API 集成。

检查不会发出应用程序 JavaScript 并将增量编译器状态保留在拥有的临时目录中。新的源文件和配置更改会重新启动相应的手表生成。类型化路由生成还支持本机 TypeScript 并在更新配置时保留 JSONC 注释。每个项目仍然需要考虑 TypeScript 7 自己的语言和配置更改。

## 跨进程共享符合条件的缓存条目

当应用程序跨多个工作线程或实例运行时，本地缓存是不够的。 PRNext 为符合条件的共享结果添加了可选的 Redis 适配器。缓存组件处理程序支持使用缓存结果。单独的createRedisIncrementalCache适配器涵盖本机HTML和ISR、fetch和unstable_cache。

这些存储角色是明确的：启用一个适配器不会自动替换每个缓存。 Redis 仍然是可选的应用程序依赖项。普通项目和使用新命令创建的项目不需要它。

共享再生使用租约来协调工作并防止旧的生产者在失效或到期后发布。该模型保留标签和二进制值。目的是跨流程进行一致协调，同时保留应用程序数据资格和隔离规则。

## 保持打开的选项卡在部署中保持一致

每个生产工件都有一个部署标识。 PRNext 可以在年龄、代数和大小限制内保留前几代的不可变资产。已打开的选项卡可以完成加载属于其代码的资源，而不是从下一个部署接收任意替换。

保留适用于符合条件的资产。它不能证明提供旧的个性化响应或重播操作是合理的。 PRNext 前面的代理和缓存必须保留部署协议所需的标头和变体。

htmlOnly 选项还选择完全静态、非交互式应用程序页面。他们的生产 HTML 保留了样式、字体和元数据，无需引导脚本或 Flight 有效负载。对于选定的路由，客户端组件、服务器操作、交互式链接和不兼容的渲染功能将被拒绝。输入这些页面之一执行普通文档导航。这是一种显式模式，不会从其他页面中删除 JavaScript。

## 绑定承认的工作并让请求完成

运行时增强了请求准入、等待队列和响应预算，因此负载无法创建无限的工作。调度考虑了路线并为最繁忙流之外的请求留出了空间。运行时配置文件更好地考虑了环境中可见的 CPU 和内存限制。

工作人员可以停止或被替换，而无需将 HTTP 流的结束视为所有关联工作的结束。缓存终结器和跟踪的响应后任务包含在耗尽中。被阻止的进程保留关闭界限，并且工作线程恢复不会重放可能已经更改数据的请求。

退休闲置工作人员可以减少活动期间保留的资源，并在下一个请求时产生唤醒成本。本机进程和其他服务仍然存在。该运行时机制与在托管提供商处休眠的整个应用程序是分开的。收益取决于流量和应用程序行为；此版本不承诺普遍减少 RAM。

## 检查实际执行和加载的代码

仪器挂钩支持在受支持的 Node、RSC 和 Edge 环境中进行注册和请求错误报告。可选的 OTLP HTTP JSON 导出将本机 HTTP、Node、RSC 和获取阶段与应用程序的 OpenTelemetry 上下文关联起来。导出队列是有限的，遥测失败不会更改应用程序响应。

初始 JavaScript 分析包括水合作用期间等待的导入以及服务器渲染实际使用的动态块。报告区分采样路径、压缩特定大小和不完整覆盖范围。风格与相关路线的联系更加紧密。这使您可以检查特定页面加载的内容，而无需将所有项目资产的总和视为其初始负载。

## 0.1.18 变更日志

导航将有界应用程序分支保留、连接丢失后的 GET 恢复、交互优先预取和差分 Flight 传输结合在一起。导航和预取阶段仍然是可选的：navigation()、prefetch() 和 EnsureStatic 使用缓存组件定义符合条件的阶段，而不使私有内容可由其他用户重用。

编译添加 React 编译器及其决策报告、本机 TypeScript 7 以及符合条件的图形的二进制存储。构建缩短本地 CSS 标识符并重用共享块。按需编译可以在中间件和重写之后具体化目的地，保留所需的并行分支并保留不相关的路由。

生产添加了 Redis 适配器、部署身份、有界资产保留和 htmlOnly 路由。并行预渲染和终结器的协调更加仔细。准入、队列、响应缓冲区和工作生命周期获得了更强有力的控制。 The Web renderer remains the default;可选的节点路径支持在同一应用程序上进行比较。

可靠性修复包括在合并文件系统通知后发现源子目录、解析元数据帮助程序以及刷新本机 TypeScript 诊断。导航测试等待交互式页面，而工作测试则区分有效的较慢启动和超出关闭范围。新的生成器为最小的 App Router 应用程序准备脚本和文件。

## 在您的应用程序中验证和采用

本文记录了源代码提交 05a9ccd。对 Linux、macOS 和 Windows 进行了全面验证，涵盖 Rust 运行时、单元测试、类型、集成和浏览器。所有六个平台的档案都是根据同一提交构建的。十二个独立安装检查依赖关系布局，十八个生命周期场景涵盖 Node.js 22, 24 和 26.

Next.js 兼容性仍然是部分的，并且此版本仍然是 alpha。检查您的路由、数据访问、表单和服务器操作，然后构建并运行生产应用程序。分别采用React编译器、Redis、分段导航和htmlOnly，以便您可以观察它们在项目中的效果。

更新包后，重建并重新启动应用程序。使用与已安装版本捆绑在一起的指南来查找其实际选项。与另一个源快照相关的性能结果并不是此提交的新基准。在概括增益之前，测量应用中的 CPU、RAM 和唤醒时间。

## Sources

[PRNext : changements depuis v0.1.17-alpha / Changes since v0.1.17-alpha](https://github.com/Lorkydey/PRNext/compare/v0.1.17-alpha...05a9ccd20e86a20698b4a37bdf6a6baa3411ceaf)

[Changelog du code documenté / Changelog for the documented source](https://github.com/Lorkydey/PRNext/blob/05a9ccd20e86a20698b4a37bdf6a6baa3411ceaf/CHANGELOG.md)

[Guides de compatibilité / Compatibility guides](https://github.com/Lorkydey/PRNext/blob/05a9ccd20e86a20698b4a37bdf6a6baa3411ceaf/packages/prnext/docs/ai/compatibility.md)

[Validation multiplateforme / Cross-platform validation](https://github.com/Lorkydey/PRNext/actions/runs/40980719114)

已发表: 2026-10-30

修改的: 2026-10-30

作者: PRNext

---

语言: zh-Hans

Canonical: https://prnext.dev/zh/blog/prnext-0-1-18-navigation-build-production

Index: https://prnext.dev/llms.txt
