JS 和 JSX

在文件后缀中

.js 表示这是一个 JavaScript 文件

.jsx 表示这是一个 JavaScript XML 文件

JavaScript 是一种直译式脚本语言

JavaScript XML 是React组件内部构建标签的类XML语法。可以理解为React提供的语法糖,可以让编译器更方便快速的选择编译方式。

JavaScript 是能够被浏览器直接识别的,JavaScript XML需要经过编译器(webpack等)转换成 JavaScript

但在正常使用上,两者没有什么区别, .js 的语法和 .jsx 的后缀可以互换,语法上也完全兼容

Facebook的团队建议(也就是React的创造者),统一使用 .js 即可,无需特意区分。

TS 和 TSX

  • TS文件是使用TypeScript编写的标准JavaScript文件,可以包含变量声明、函数定义等内容;
  • TSX文件是TypeScript中的一种格式,它允许我们将JSX片段嵌入到TypeScript代码中,从而提供更好地对React组件的类型检查。
  • 使用TSX文件时,我们需要先定义特定的接口或类型,然后使用这些接口或类型来表示React组件props和状态的类型。

从使用的角度上来说

.ts 的文件,内容上不支持 <div> 这种HTML语法,会报错的,而且VS Code这类代码编辑器也不会提供相关代码提示和补全的功能。

总结:使用上 js=jsx,tsx=ts(不支持html语法(如<div>))+jsx

如果你只为JavaScript文件添加某些类型信息,则可以使用TS文件。

如果你要写一个React应用程序并想要利用TypeScript的类型检查,那么应该选择TSX。

js,jsx,ts和tsx在用法上的区别相关推荐

  1. (005)RN开发 js jsx ts tsx的区别

    背景:在入门RN开发的过程中,发现公司项目代码中,有的项目是全是.js的后缀文件.有的项目全是ts.tsx.js 文件.心中很是疑惑,所以就写个文章记录下自己的解惑的过程. js:是弱类型语言,容易出 ...

  2. .js/.jsx/.ts/.tsx

    .js是javascript文件的扩展名,例如main.js. .jsx是javascript文件并表明使用了JSX语法. .ts是typescript文件的扩展名 .tsx表明是typescript ...

  3. C与C++在const用法上的区别

    首先,C和C++在大体结构上不同,却在语法上相同.  所以在使用的时候,我们会时常遇到一些莫名其妙的问题,觉得语法上是正确的,但是编译的时候却出现一个红色的 error! 比如今天我遇到的这个有意思的 ...

  4. 关于SQL数据库中cross join 和inner join用法上的区别?

    使用mysql创建两张表 表a 表b 可以使用下面的脚本创建表,并且添加测试数据: CREATE TABLE `a`  (   `name` varchar(10) CHARACTER SET utf ...

  5. C语言typedefine用法介绍,typedef与define在用法上的区别

    简单来讲:#define只是简单的进行了替换,而typedef则是为类型取了个"别名". 1. #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是 ...

  6. spark的client模式和cluster模式用法上的区别

    运行模式 启动命令 备注 client模式 spark-shell --master yarn 支持shell,client模式可以在 命令行中省去deploy-mode命令项 cluster模式 s ...

  7. rate和ratio在用法上的区别(转)

    http://blog.sciencenet.cn/blog-656335-992410.html rate 可以翻译为速度或速率,指不同单位之间的关系.比如,某人开车的 rate 是30公里/小时: ...

  8. Typescript助力项目开发:JS切换TS、TS类型定制与思考

    TS已经成为可以帮助项目顺利开发的存在了.在上半年笔者就被要求采用TS开发新的项目,并在一些老项目中用TS去改造(因为沟通原因我以为某个远程组件只有TS版本).在其中也有了一些思考. 首先是目录结构. ...

  9. 加个ing是什么意思_英语中动词ed和ing形式作形容词时用法有啥区别,牢记以下要点!...

    一.动词ed形式 1.意义:动词ed形式作形容词时,表达"某人对--感到怎么样",形容的是人. 2.用法:一般用于sb+be+ 形容词+at/in/about--等固定搭配中. 例 ...

最新文章

  1. C++STL 优先队列priority_queue使用
  2. python语言标识符首字符不能是汉字_Python基本语法元素
  3. jQuery将不再支持IE6/7/8
  4. 计算机英语 TCP IP什意思,TCP/IP常见英文缩写释义
  5. css3动画 --- Animation
  6. poj 1459-Power Network解题报告
  7. 数据挖掘-Apriori算法
  8. 公司如何实施 EDI 项目?
  9. 一个将汉字转换成拼音的npm包
  10. 科密考勤机对比和参考价
  11. “互联网+”医疗服务
  12. php 批量下载网页文件,批量下载文件(以xxx网站为例)
  13. gitlab运行后修改存储位置
  14. APP软件项目迭代开发
  15. 开发利器IntelliJ IDEA—带你体验各种神奇操作
  16. Charles 4.5.6版本抓包工具的下载、注册与配置
  17. 重复的事情用心做!感悟
  18. hgame week1 2021 pwn
  19. 评价股票博客好坏的指标(第11期)
  20. 基于 twemproxy 搭建 redis 集群

热门文章

  1. 删除子串 string
  2. okHttp3.0下载文件
  3. 凸优化中凸函数定义、直线与线段、凸集、仿射集合、仿射函数
  4. 【RL-TCPnet网络教程】第28章 RL-TCPnet之DNS应用
  5. 关键字搜索苏宁商品API接口(苏宁商品列表API接口)
  6. 在linux中hdparm作用,關於Linux中hdparm的應用
  7. 王者荣耀微信查服务器,通过微信看别人王者荣耀记录_别人微信查交易记录怎么查询...
  8. 微信小程序组件库开发记录
  9. 关于springboot启动时报错 [org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.clas
  10. WIFI慢的应该用什么办法解决