我是否必须保存带有 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.
我已经写了几个月的 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.