我是新的react ".jsx"文件,我现在可以运行devbuild测试.

我有一个关于浏览器如何运行".js"文件的问题.如果项目是build,那么浏览器正在运行".js"文件,我理解这一点,因为浏览器可以运行".js"文件.

但在dev期间,当我在浏览器的开发模式下判断应用程序源代码时,它显示在html文件中有一个".jsx"文件!

enter image description here

怎么可能呢?浏览器可以运行".jsx"文件吗?或者在开发模式下,开发服务器(如npm或vite)正在做一些秘密的事情?浏览器显示源代码为".jsx",但实际上它正在运行其他文件(被npm或vite隐藏)?

推荐答案

  1. How does the browser run .jsx files during development?:在开发期间,当您使用像NPM或VITE这样的开发服务器时,该服务器执行一些幕后工作.当浏览器请求.jsx文件时,开发服务器会将JSX动态编译成JavaScript,并将编译后的JavaScript发送给浏览器.因此,尽管浏览器似乎运行的是.jsx文件,但它运行的是编译后的JavaScript.

  2. Why does the browser show .jsx in the source code?:这是由于源 map .如在https://firefox-source-docs.mozilla.org/devtools-user/debugger/how_to/use_a_source_map/index.html处所解释的,"源映射是从经变换的源映射到原始源的文件,使得浏览器能够重构原始源并在调试器中呈现重构的原始源.在您的示例中,"原始源代码"是JSX代码,"转换后的源代码"是编译后的JavaScript.

Javascript相关问答推荐

如何解决这个未能在响应上执行json:body stream已读问题?

node TS:JWT令牌签名以验证客户端和后台问题之间的身份验证

django无法解析余数:[0] from carray[0]'

网页自检测外部元素无法加载

JS,当你点击卡片下方的绿色空间,而它是在它的背后转动时,

使用Promise.All并发解决时,每个promise 的线性时间增加?

S文本内容和值不必要的不同

使用ThreeJ渲染的形状具有抖动/模糊的边缘

使用POST请求时,Req.Body为空

覆盖加载器页面避免对页面上的元素进行操作

Reaction-SWR-无更新组件

如果NetSuite中为空,则限制筛选

Jexl to LowerCase()和Replace()

我怎样才能得到一个数组的名字在另一个数组?

Plotly.js栏为x轴栏添加辅助文本

在Press Reaction本机和EXPO av上播放单个文件

:host::ng-Deep不将样式应用于material 复选框

单击子按钮时将活动切换类添加到父分区

如何在底部重叠多个div?

如何使用Angular JS双击按钮