reactjs - 如何突破 Next/React 导入地狱?
问题描述
在使用 Vue 和 Nuxt 一年多之后,我决定学习 React 和 Next.js,几乎立刻就注意到了可怕的开发者体验。
每个样式表和组件都需要导入,因此在每个组件的开头总是存在臃肿的导入地狱。
更不用说你是否需要一个额外的库,因为你不能像 Nuxt 的this.$plugin
选项那样挂钩任何全局对象。
是否有一些包来管理 Nextjs 的这些导入?据我所知,使用它的每个人都不介意它,这让我感到惊讶。
这个问题可能是对 React 的一种侮辱,但我只想至少有一个理由加入炒作列车,了解为什么 React 更受欢迎。
解决方案
在pages目录中创建一个文件,命名为它_doucument.js
或_document.ts
(对于 TypeScript)并在其中导入 React,如下所示:(
以下代码是 TypeScript)
import React from 'react';
import Document, {
DocumentContext,
Head,
Html,
Main,
NextScript,
} from 'next/document';
export default class CustomDocument extends Document {
static async getInitialProps(ctx: DocumentContext) {
const initialProps = await Document.getInitialProps(ctx);
return { ...initialProps };
}
render() {
return (
<Html lang="en">
<Head>
<title>Your title</title>
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
并且不再需要在任何组件中导入 React。
推荐阅读
- python - 如何将数据从多个工作表的一个 Excel 文件复制到另一个多个工作表的 Excel 文件
- asp.net-core - 用于 .NET Core 的 PayPal SDK 中的付款
- c++ - 调用变量时出现内存错误
- java - 如何知道 FileWriter file = new FileWriter('...', append); 的确切原因 失败的?
- razor-pages - 更新剃须刀页面中的相关数据
- java - 如何在java中使用多个不同类型的扫描仪?
- laravel - 使用 Laravel 进行动态数据库连接
- vb.net - 当用户在 Datagridview 中删除行时如何从持久存储中删除记录
- php - 在 Laravel 5.7 上使用 Intervention\Image 后的所有 Ajax 请求 419
- ansible - 如何使用 Ansible 追加文件