将 react 导入 next.js 中的页面

kil*_*ram 9 reactjs next.js

我有一个包含多个页面的 Next.js 应用程序。所有页面看起来都很相似。

import React, { Component } from "react";
import  from "components/Wrapper";

export default class About extends Component {
  render() {
    return <Wrapper />;
  }
}
Run Code Online (Sandbox Code Playgroud)

我想使用功能组件重构它。

在这里读到,由于 next.js 路由系统,您不必在页面中导入 react 包。Next.js 文档还显示了页面组件上没有反应导入的示例,但没有给出解释。

你能澄清一下吗。在这种情况下是否有必要导入 React?我可以删除导入 React 行吗?

SMA*_*KSS 19

嗯,实际上对于我们所有人来说import React from "react";,在 Next.js 应用程序中意识到何时使用以及何时不使用仍然是一个复杂的问题。但根据Next.js 的合著者Tim Neutkens的说法,在这个帖子中他提到:

当确实使用 JSX 时,Next.js 会自动添加 React 导入。但是请记住,import React from 'react'当使用 React 变量时,我们仍然需要这样做。

所以这将告诉我们,每当我们只想从 React 中单独使用 JSX 功能时,我们不必这样做import React from 'react',Next.js 会为我们隐式导入它,但在任何其他情况下,我们都必须这样做。

  • @kilogram 是的,确实如此。但例如,当您想使用“useState”时,您仍然需要导入它。因为如果你不这样做,它会抛出一个错误,并且不会到达转换部分。 (2认同)