You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的React应用未导入React却没有抛出相关错误?

问题原因解答

这个现象是React 17及更高版本引入的全新JSX转换特性导致的,具体逻辑如下:

  • React 17版本之前,所有JSX语法在编译时都会被转换为React.createElement()调用,因此每个使用JSX的文件必须手动引入React对象,否则就会抛出'React' is not defined的运行时/校验错误。
  • 从React 17开始,官方联合Babel、TypeScript等编译工具推出了新的JSX转换逻辑:编译时JSX不再被转为React.createElement(),而是会自动从react/jsx-runtime中导入专用的jsx生成函数来构建元素,这一步导入操作是编译工具自动完成的,不需要开发者手动在文件头部引入React。

如果你是通过Create React App(CRA)初始化的项目,只要CRA版本在v4.0及以上,默认就开启了该新转换特性,因此你注释掉两个文件的React引入语句也不会触发报错。


内容的提问来源于stack exchange,提问作者Ritik Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:39:03