使用.js还是.jsx

React项目中,对于包含了JSX的文件,我们我们可以使用.js的后缀。那.jsx用来做什么呢?关于这一点,airbnb 和 facebook 的团队,有不同看法。总结下来就是:

airbnb的团队认为(参考阅读):

JSX是非标准的JavaScript语法,因此包含JSX就应该使用 .jsx后缀。

facebook的团队认为(参考阅读):

开发者其实不关心文件后缀,那是Babel这样的转译器关注的,如果每一种语法类型都需要增加一种文件后缀,将会有多种多样的文件后缀。JSX作为JavaScript的超级,只要编辑器能够支持JSX语法即可。

使用.ts还是.tsx

尝试在React项目中加入TypeScript发现想要在 .ts中应用JSX就行不通了,编辑器并不能识别JSX的语法。

这是因为(参考阅读):

TypeScript的显示类型转换(例如:let p = {} )和 JSX的语法会导致编辑器无法识别。

因此需要将有JSX语法的代码存放在.tsx后缀的文件中,仅包含普通TypeScript的代码放在.ts中。