接下来.js应用文件夹:有没有"entry point"?直接替代 _app.tsx 和 _document.js?



之前我有一个自定义的_app.tsx,为我的应用程序做了一些引导:useEffect(() => void defineCustomElements(), []);它加载自定义元素/web组件,并确保它们可以水合。

我现在应该把这个效果与应用路由器放在哪里?没有"全局"_app.tsx和其次是"服务器组件第一"?

在升级指南页面上,他们说"pages/_app.jspages/_document.js已被替换为单个app/layout.js根布局">

所以在你的情况下,你可以把你的逻辑在那里,使它成为一个客户端组件与"use client"在顶部,如果你想客户端交互像useEffect在它。

但是如果你不想让你的根布局是一个客户端组件,你可以这样做,例如,使用一个单独的组件:

// DefineCustomElements.js
"use client";
export default function DefineCustomElements() {
useEffect(() => defineCustomElements(), []);
return <></>;
}
// app/layout.js
import DefineCustomElements from "./DefineCustomElements";
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<DefineCustomElements />
{children}
</body>
</html>
);
}