[RFC] 065 - 升级到 Next 15 + React 19 #4449
arvinxx
started this conversation in
RFC | 特性开发
Replies: 4 comments 2 replies
-
Next 15的React最小版本要求是19 |
Beta Was this translation helpful? Give feedback.
2 replies
-
next15 Turbopack 编译效果对比评测机器:MacBook Pro 16'' Apple M1 Max 64G
|
Beta Was this translation helpful? Give feedback.
0 replies
-
内存用量测试感觉可能测试有点问题,需要再验证下 |
Beta Was this translation helpful? Give feedback.
0 replies
-
antd 5.22.6 开始兼容 react19 ,通过一个临时方法修复(V6 应该会删除),这样一来阻止我们升级 next15 的最后一个阻碍也扫清了 "use client";
import { useEffect } from "react";
import { unstableSetRender } from "antd";
import { createRoot } from "react-dom/client";
const AntdV5MonkeyPatch = () => {
useEffect(() => {
unstableSetRender((node, container) => {
const root = createRoot(container);
root.render(node);
return async () => {
root.unmount();
};
});
}, []);
return null;
};
export default AntdV5MonkeyPatch; |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
背景
Next 15 于 2024.10.21 发布正式版: https://nextjs.org/blog/next-15 ,并可以和 react 19 一起使用。我们需要在合适的时间将 next 版本升级到 15 。
思路
之前在 next 出 15@rc 时已经有了一个测试 PR: #2630 ,当时测下来直接构建是没问题的。但 next 15 正式版带来了几个 breaking change:
第一个也是最大的 Breaking Change ,是所有 Page 相关的 api Request 都变成异步的了:
牵涉到的范围很广:
params
in layout.js, page.js, route.js, default.js, generateMetadata, and generateViewportsearchParams
in page.js而我们的亮暗色主题切换 / 多套 Layout / 多语言, 都牵扯到 cookies 和 headers,因此变动算比较大的。
Cache: 所有的 fetch 都默认不缓存了,这个可能会对 vercel 上的用量有影响,感觉需要更新后观察一段时间(7-15天),然后再确认哪些应该再重新缓存住。
React 19 : 这个还没发正式版,所以升级 next 15 的时候应该会先不升级 react,而且测了下 antd 目前也不支持 React19(不兼容 react@19 ant-design/ant-design#51339 ),等发布正式版并且相关配件稳定后再升。
这样的话整个顺序可能就是先升级 next15,完成兼容性改造,然后过一段时间后,再升级 react19
进展
前置改造工作
改造异步 api request
改造全量的 server layout/server page 用法(isMobile 判断逻辑)
headers()
#5097升级 nextjs 15
Beta Was this translation helpful? Give feedback.
All reactions