javascript - NextJS:主要和 Nextscript
问题描述
稍微探索一下 NextJS 的服务器端渲染功能。它看起来非常漂亮且易于使用。我已经探索了_document.js
我们可以包含以覆盖默认值的文件。我在一个示例中找到了以下代码:
import Document, { Head, Main, NextScript } from 'next/document'
export default class MyDocument extends Document {
render() {
return (
<html>
<Head>
<link rel="stylesheet" href="/_next/static/style.css" />
</Head>
<body>
<Main />
<NextScript />
</body>
</html>
)
}
}
现在我知道我们正在覆盖当前HTML
模板。但是我对Main
and的功能有点困惑Nextscript
。
Main
只是一个页面吗?什么是Nextscript
(哪个脚本)?
解决方案
NextScript 类在这里
主课在这里,我在下面复制了相同的内容。主要呈现 html/errorHtml 来自this.context._documentProps
export class Main extends Component {
static contextTypes = {
_documentProps: PropTypes.any
}
render () {
const { html, errorHtml } = this.context._documentProps
return (
<Fragment>
<div id='__next' dangerouslySetInnerHTML={{ __html: html }} />
<div id='__next-error' dangerouslySetInnerHTML={{ __html: errorHtml }} />
</Fragment>
)
}
}
您可以在此处找到有关自定义文档的实际文档
推荐阅读
- android - HorizontalListView - 如何获取图像视图源
- sql - 动态 SQL--嵌套 Replace() 函数
- kubernetes - 如何将此 Traefik 示例部署到 Kubernetes?
- python - Numpy searchsorted 没有按预期工作
- macos - 可以使用 Cmd+c 复制 vim 选择吗?
- webpack-4 - Webpack 多个块包含相同的依赖项
- python - 收到一条错误消息,显示“无法将非有限值(NA 或 inf)转换为整数”,尽管我没有任何无穷大或 NA 值
- sql - 重命名枚举值会导致“找不到类型关系”
- lambda - 地图结果上的 Collectors.groupingBy 到嵌套地图
- node.js - 在 lambda 函数中为 dynamodb 生成唯一键