【React】React17+配置Babel实现无需导入React就可以使用jsx

React17以后,无需引入React包,就可以使用jsx语法,官网说明

Babel版本

首先 Babel 要使用 V7.9.0 以上

如果使用的是 @babel/plugin-transform-react-jsx

javascript 复制代码
npm update @babel/core @babel/plugin-transform-react-jsx

如果使用的是 @babel/preset-react

javascript 复制代码
npm update @babel/core @babel/preset-react

配置

旧的转换的默认选项为 {"runtime": "classic"},改为 {"runtime": "automatic"}

.babelrc 配置如下:

使用 @babel/preset-react

javascript 复制代码
{
  "presets": [
    ["@babel/preset-react", {
      "runtime": "automatic"
    }]
  ]
}

使用 @babel/plugin-transform-react-jsx

javascript 复制代码
{
  "plugins": [
    ["@babel/plugin-transform-react-jsx", {
      "runtime": "automatic"
    }]
  ]
}

删除项目中原有的React引入

因为新的 JSX 转换会自动引入必要的 react/jsx-runtime 函数,因此使用 JSX 时,将无需再引入 React,保留也无伤大雅。

javascript 复制代码
cd your_project
npx react-codemod update-react-imports
相关推荐
蘑菇头爱平底锅1 分钟前
数字孪生-DTS-孪创城市-前端用代码实现行政区划分
前端·数据可视化
安迪小宝3 分钟前
python基础语法13-装饰器
开发语言·前端·python
鸿蒙场景化示例代码技术工程师25 分钟前
实现文件List拖动鸿蒙示例代码
前端
Rachel_wang30 分钟前
React 使用 i18next 实现国际语言切换翻译
前端
小白探索世界欧耶!~31 分钟前
【踩坑】GitHub Actions 运行的 Linux 环境中,文件名是大小写敏感的
linux·运维·服务器·前端·vue.js·笔记·github
Simon—欧阳35 分钟前
C#异步方法返回Task<T>的同步调用
开发语言·前端·javascript
天生我材必有用_吴用40 分钟前
vue3实战三、Axios封装结合mock数据,vite跨域及环境变量配置 入口
前端
天生我材必有用_吴用41 分钟前
vue3实战二、搭建Vue+ElementPlus项目教程 入口
前端
天生我材必有用_吴用1 小时前
Vue3实战七、登录认证与退出登录
前端
逆袭的小黄鸭1 小时前
JavaScript DOM 事件流:从基础传播到高级控制与自定义实践
前端·javascript