58
votes

I would like to understand the technical difference between them so as to determine the appropriate one to use.

I've realised that they can both have same content and sometimes used interchangeably in some projects.

How does .jsx files differ from .js?

1
.jsx will be finally compiled to .jshjl
As of 2017-08, create-react-app uses plain .js when you generate a new app, FWIW.Jared Beck
this is very good question. why opinion-based?Nicolas S.Xu
@NicolasS.Xu, because both are working fine and it seems a question of personal preferences ;)krankuba

1 Answers

22
votes

Update for Newer Users

The JSX Compiler tool has been removed as JSXTransformer has been deprecated. The React Team recommends using another tool such as the Babel REPL.


If you wish to keep the JSX source code intact for better maintainability, I would keep them as .jsx files. Using the JSX Compiler, either manually or via build script, will convert your JSX syntax to normal JavaScript files.

Note: It is possible to serve JSX files in your production environment but React will give you console notices about reduced performance.


Personally, I would use something like gulp-jsx or gulp-reactify to convert the files.

Example with 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'));
});