【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
相关推荐
开心工作室_kaic1 小时前
ssm010基于ssm的新能源汽车在线租赁管理系统(论文+源码)_kaic
java·前端·spring boot·后端·汽车
大力水手~2 小时前
css之loading旋转加载
前端·javascript·css
Nguhyb2 小时前
-XSS-
前端·xss
前端郭德纲2 小时前
深入浅出ES6 Promise
前端·javascript·es6
就爱敲代码2 小时前
ES6 运算符的扩展
前端·ecmascript·es6
王哲晓3 小时前
第六章 Vue计算属性之computed
前端·javascript·vue.js
究极无敌暴龙战神X3 小时前
CSS复习2
前端·javascript·css
风清扬_jd3 小时前
Chromium HTML5 新的 Input 类型week对应c++
前端·c++·html5
Ellie陈3 小时前
Java已死,大模型才是未来?
java·开发语言·前端·后端·python
GISer_Jing4 小时前
React面试常见题目(基础-进阶)
javascript·react.js·前端框架