react项目中,使用.jsx和.js文件书写react代码时,这两者有什么差异性?

我在js中用JSX的语法写,和在JSX中用JSX的语法写,然后用webpack打包编译,都能达到同样的效果,为什么还会有一个.JSX后缀的文件.
写.VUE文件时官方造成.Vue格式它能够以Vue官方特定的组件组织规则,而.JSX文件和.JS文件所能达到的效果都一样,.JSX文件存在的意义是什么呢?
最近刚玩React,想查阅相关资料并未找到,还请Reactjs大神指点迷津,谢谢。

阅读 28k
6 个回答

答案是"没有"差异。

.JSX后缀的文件只是方便一眼看出里面有用JSX语法而已。对一些编辑程式或打包工具扩充来说,它们还得加上对.JSX后缀的文档的支援,多花了一些工夫,所以有些旧版的编辑程式是没法支持的。实际上打包出来后能执行的只有.JS文档。当然据说可以浏览中加载,没用过也不支持这种作法。所以看个人爽用了,我个人是不用.JSX后缀的文件的。

用jsx写react并不是标准的js,如果用编辑器默认的编辑模式其实会报错的.
能直接写js,是因为现在babel,可以解析这个了.然后由webpack打包处理后,.js和.jsx文件被解析打包后其实是一样的,都是es5语句,所以效果并不会有差异。
但是react的jsx语句并非js语言的标准语句(如果使用编辑器默认的js解析方案其实是会报错的,现在编辑器允许你选择不同的解析方案,比如说sublime中可以用babel解析,才使得编辑器解析带有jsx语句的js时没报错),但是后缀为.jsx,一般编辑器默认就用react的方式解析了。

我个人来说的话,用jsx来写是为了代码样式,jsx后缀编辑器会自动识别并使用react的代码样式,而js则没这效果。

比较直观的是如果你用sublime编辑器,并且你下载了jsx syntax。那如果你文件是jsx,sublime便会自动解析出jsx,给出相应的语法高亮之类。

其他人评价的都对,没有差别,只是为了在编辑器里标示出来react语法而已

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题