【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
相关推荐
国家不保护废物2 分钟前
10万条数据插入页面:从性能优化到虚拟列表的终极方案
前端·面试·性能优化
文心快码BaiduComate17 分钟前
七夕,画个动态星空送给Ta
前端·后端·程序员
web前端12321 分钟前
# 多行文本溢出实现方法
前端·javascript
文心快码BaiduComate21 分钟前
早期人类奴役AI实录:用Comate Zulu 10min做一款Chrome插件
前端·后端·程序员
人间观察员23 分钟前
如何在 Vue 项目的 template 中使用 JSX
前端·javascript·vue.js
布列瑟农的星空26 分钟前
大话设计模式——多应用实例下的IOC隔离
前端·后端·架构
EndingCoder31 分钟前
安装与环境搭建:准备你的 Electron 开发环境
前端·javascript·electron·前端框架
蓝银草同学1 小时前
前端离线应用基石:深入浅出 IndexedDB 完整指南
前端·indexeddb
龙在天1 小时前
什么是SourceMap?有什么作用?
前端
雪中何以赠君别1 小时前
Vue 2 与 Vue 3 双向绑定 (v-model) 区别详解
前端·javascript·vue.js