我正在将 Next 12 应用程序迁移到 Next 13 及其新/app目录。
我有一个<LoginPage>组件(呈现 @ /login),显然,它需要使用钩子来管理表单数据。因此,我已经用'use client'指令标记了它。
然而,这意味着新的元数据 API 不能用于设置<title>,理想情况下,我希望设置像 一样简单Login | ${process.env.NEXT_PUBLIC_APP_NAME}。
任何帮助表示赞赏!
鉴于我有一个静态站点(https://abdullahraheel.tech/),其唯一的交互功能是切换暗模式的能力,我承认useState在服务器组件中使用是不可能的。
export default function RootLayout({ children }: { children: React.ReactNode }) {
const [darkMode, setDarkMode] = useState(true);
return (
<html lang="en">
<head />
<body className={inter.className}>
<div className={darkMode ? "dark" : ""}>
<main className="min-h-screen bg-white px-5 dark:bg-black absolute left-0 right-0 -z-50">
<FallingStar />
<Navbar darkMode={darkMode} setDarkMode={setDarkMode} />
<div className="mx-auto max-w-3xl z-50 mb-10">
{children}
<Footer />
</div>
<AnalyticsWrapper />
</main>
</div>
</body>
</html>
);
}
Run Code Online (Sandbox Code Playgroud)
鉴于上面的代码,我只是将 dark 类应用到我的容器 div 中。深色模式在导航栏中切换。
在 Next.js 13 中,我利用layout.tsx 中的“use client”关键字将整个布局转换为客户端组件。然而,考虑到我对默认启用深色模式的偏好,我现在认识到将整个布局作为客户端组件可能不是最佳方法。因此,我想将站点转换为服务器端组件,以便稍后可以进行水合以实现所需的交互性。
javascript typescript server-side-rendering next.js tailwind-css
更新到 Angular 17 后出现此错误:
NG02801:Angular 检测到“HttpClient”未配置为使用“fetch” API。强烈建议为使用服务器端渲染的应用程序启用“fetch”,以获得更好的性能和兼容性。要启用“fetch”,请将“withFetch()”添加到应用程序根目录的“provideHttpClient()”调用中。
我认为在对我的服务进行编码并HttpClient通过注入函数导入之后,它达到了这一点。
我一直想学习 NodeJS 以便能够在服务器端和客户端运行相同的代码。我正在将 NodeJS 与 Express 和 EJS 一起使用。所以。我有一个 .ejs 页面,里面有很多 HTML、JS、CSS 和一些模板。为了正义,让它变成这样:
the_list-->some.ejs
<ul>
<% for(i=0;i>the_list.length;i++) { %>
<li>the_list[i]</li>
<% } %>
</ul>
Run Code Online (Sandbox Code Playgroud)
在服务器上进行一些渲染后,我们有一个完美的列表。
所以。现在我想在客户端重新渲染它。我提出了一些 ajax 请求,现在我在 the_list 中有新项目。什么是正确的方法?
我正在使用这个 repo 作为基础。我已经解决了几乎所有其他插件的错误,但我无法解决这个错误。
在进行 SSR 构建时,没有其他插件需要 .map 文件,因为它是生产版本。但我不知道它是从哪里爬进来的。
这是导致错误的行。在server.js文件中。
margin: -1px 0; }\n\n/*# sourceMappingURL=swiper.component.css.map
Run Code Online (Sandbox Code Playgroud)
我不想每次进行构建时都手动删除它,因此如何解决问题以及问题可能是什么。
错误 出了点问题,请稍后再试!错误 { 错误:未捕获(承诺):错误:无法匹配任何路由。URL 段:'swiper.component.css.map' 错误:无法匹配任何路由。URL 段:CatchSubscriber.selector (E:\xampp\htdocs\havemybooks\ dist\server.js:146195:29) 在 CatchSubscriber.error (E:\xampp\htdocs\havemybooks\dist\server.js:29486:31) 在 MapSubscriber.Subscriber._error (E:\xampp\htdocs\havemybooks\ dist\server.js:20931:26)
更新:
我发现罪魁祸首是具有内联的插件/*# sourceMappingURL=swiper.component.css.map */
所以是否有 webpack 配置来替换已经存在的内联源映射。
我尝试--devtool false使用 webpack 但没有成功
在我的 angular 应用程序中,如果我转到开发工具网络选项卡,我将能够看到来自后端的响应和请求。有谁知道如何隐藏或屏蔽这些数据,如果我进行服务器端渲染,这可能吗?
javascript web-frontend node.js server-side-rendering angular
我在一个使用以下项目的项目中工作:
该应用程序呈现服务器端和客户端。
我正在使用@loadable/component这种方式动态代码拆分。
路由器.tsx
import * as React from 'react'
import loadable from '@loadable/component'
import { Route, Switch } from 'react-router-dom'
const NotFound = loadable(() =>
import('../components/NotFound/NotFound' /* webpackChunkName: "notfound" */)
)
const routes = (
<Switch>
<Route component={NotFound} />
</Switch>
)
export default routes
Run Code Online (Sandbox Code Playgroud)
加载页面时,此错误出现在控制台上,页面似乎闪烁了一秒钟。
react-dom.development.js:546 Warning: Did not expect server HTML to contain a <div> in <main>.
Run Code Online (Sandbox Code Playgroud)
当我检查双方(服务器/客户端)的输出时,它们是相同的。
当我@loadable/component像下面那样删除时,它可以工作并且错误消失了。
路由器无负载.tsx
import * as React …Run Code Online (Sandbox Code Playgroud) javascript reactjs server-side-rendering react-router-dom loadable-component
我没有将 Webpack 配置用于 React SSR。相反,这是我的配置:
require("@babel/register")({
presets: ["@babel/preset-env", "@babel/preset-flow", "@babel/preset-react"],
plugins: [
"@babel/plugin-transform-runtime",
"@babel/plugin-proposal-class-properties",
"babel-plugin-dynamic-import-node",
"@babel/plugin-transform-modules-commonjs",
[
"module-resolver",
{
root: ["./src"]
}
]
]
});
require("ignore-styles");
module.exports = require("./server.js");
Run Code Online (Sandbox Code Playgroud)
问题是 css 类在呈现的 html 中未定义。我怎样才能解决这个问题?
错误参考错误:文档未定义
import { readFileSync } from 'fs';
const domino = require('domino'); // import the library `domino`
const DIST_FOLDER = join(process.cwd(), 'dist/browser');
const template = readFileSync(join(DIST_FOLDER, 'index.html')).toString(); // use `index.html` as template
const win = domino.createWindow(template); // create object Window
global['window'] = win;
global['Event'] = win.Event; // assign the `win.Event` to prop `Event`
global['document'] = win.document;Run Code Online (Sandbox Code Playgroud)
即使在 Server.ts 中添加这个修复问题但在性能 TTFB 时间太高。任何有解决方案...?
我正在使用 Next Js (React SSR) 制作服务器端渲染应用程序。
Index.js(简单地调用index中的另一个组件Layout)
import Layout from "./layout";
import React from "react";
class Home extends React.Component {
render() {
return (
<div>
<Layout />
</div>
);
}
}
export default Home;
Run Code Online (Sandbox Code Playgroud)
布局.js
import React from "react";
import Product from "./product";
class Layout extends React.Component {
static async getInitialProps() {
const res = await fetch("https://api.github.com/repos/developit/preact");
console.log(res);
const json = await res.json();
return { stars: json.stargazers_count };
}
componentDidMount() {
if (localStorage.getItem("userLoggedIn")) {
//Get products details for logged …Run Code Online (Sandbox Code Playgroud) javascript ×5
angular ×4
next.js ×3
reactjs ×3
node.js ×2
angular9 ×1
css-modules ×1
ejs ×1
fetch-api ×1
httpclient ×1
next.js13 ×1
seo ×1
tailwind-css ×1
typescript ×1
web-frontend ×1