.jsx 和 .js 文件之间的技术区别是什么

What is the technical difference between .jsx and .js files

我想了解它们之间的技术差异,以便确定合适的使用。

我意识到它们可以具有相同的内容,有时在某些项目中可以互换使用。

.jsx 文件与 .js 有何不同?

新用户更新

JSX 编译器工具已被删除,因为 JSXTransformer 已被弃用。 React 团队建议使用其他工具,例如 Babel REPL.


如果您希望保留 JSX source code intact for better maintainability, I would keep them as .jsx files. Using the JSX Compiler,手动或通过构建脚本,会将您的 JSX 语法转换为正常的 JavaScript 文件。

注意:可以在您的生产环境中提供 JSX 文件,但 React 会给您 console 关于性能降低的通知。


就个人而言,我会使用 gulp-jsx or gulp-reactify 之类的东西来转换文件。

示例 gulp-jsx:

var gulp = require('gulp');
var jsx  = require('gulp-jsx');

gulp.task('build', function() {
  return gulp.src('path/to/*.jsx')
    .pipe(jsx())
    .pipe(gulp.dest('dist'));
});

查看此讨论: JSX 既不是 JS 也不是 HTML,因此给它扩展名有助于表明它是什么。您可以在此处找到更多讨论和链接的文档。