react.js - 使用什么扩展名 - '.jsx'或只是'.js'?

Kos*_*ika 54 javascript reactjs

我只想弄清楚我的应用程序有什么好处:

  1. 使用.jsx扩展,但我需要在require函数中要求具有显式扩展名的组件require('MyComponent.jsx');

  2. 使用.js扩展,这很好,require('MyComponent);但我需要破解Sublime正确lint它们并突出显示语法.

你有什么经历?

Rya*_*yan 17

更新用户的更新

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


如果您希望保持JSX源代码的完整性以便更好地维护,我会将它们保存为.jsx文件.使用JSX编译器,手动或通过构建脚本,将您的JSX语法转换为普通的JavaScript文件.

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


就个人而言,我会使用像gulp-jsxgulp -reactify这样的东西来转换文件.

例如用吞-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'));
});
Run Code Online (Sandbox Code Playgroud)

  • Airbnb说jsx:https://github.com/airbnb/javascript/tree/master/react#naming (5认同)
  • 看看保罗和塞巴斯蒂安的理性背后.js赞成扩展.jsx https://github.com/facebook/react/issues/3582#issuecomment-89411479. (3认同)
  • 我使用`.jsx`作为反应组件,遵循将coffeescript文件保存为`.coffee`的惯例.是的,它最终将编译为javascript,但使用适当的文件扩展名来描述文件中的实际内容是一个更好的约定 (3认同)