我是否必须保存带有 jsx 扩展名的 React 组件文件

Do I have to save react component files with a jsx extension

我已经写了几个月的 React,我刚刚意识到我的一些文件有 .js 扩展名,而其他文件有 .jsx 扩展名。当我在 .js 文件中写入 jsx 时,一切仍然有效。扩展名是什么重要吗?

顺便说一下(对于上下文),我正在使用 webpack 生成一个 bundle.js 文件。这有什么影响吗?

不使用 .js 或 .jsx 并不重要,因为您有 webpack/babel 来转换所有内容。真正的主要区别是当您导入文件时,您必须为 jsx 文件包含 .jsx 扩展名,如果它只是一个 js 文件,您可以只输入文件名。例如:从 './file.jsx' 导入文件与从 './file'

导入文件

不,扩展名是什么并不重要。

与 Babel 捆绑在一起的 JSX 转译器(我假设您正在将其与 Webpack 一起使用)遍历监视目录中的每个文件,并且只转换那些与 JSX 语法匹配的段。

您的所有文件都将复制到相应的构建目录中,或者 - 在这种情况下 - 复制到您的 Webpack 包中。转译器能够区分常规 Javascript 和 JSX,并且不会对前者进行更改。

无论如何使用.jsx仍然是一个好习惯,这样就很清楚了 人类。

如前所述,从技术上讲这并不重要。

但是,尤其是在涉及协作项目时,查看 Airbnb React/JSX 风格指南 可能会很有趣,其中提到:

Extensions: Use .jsx extension for React components.

来源:https://github.com/airbnb/javascript/tree/master/react