这里写目录标题 安装 Babel 配置 presets配置:常见的 Babel Presets plugins配置:以 plugin-transform-class-properties 的类中属性为例 index.jsx
Babel 是一个独立的 JavaScript 编译器,主要用于将现代 JavaScript 代码转换为旧版本的 JavaScript,以提高兼容性。
安装 Babel
npm install --save-dev @babel/core @babel/cli @babel/preset-env
配置
然后需要配置 Babel,通过创建一个 .babelrc
文件或在 babel.config.json
中设置Babel 配置。 Babel 的配置通常包括 presets 和 plugins。其中 presets 用于指定一组预设的转换规则,plugins则通过自定义的插件形式进行代码兼容转换。 babel.config.json 示例:
{ "presets" : [ "@babel/preset-env" , "@babel/preset-react" ] , "plugins" : [ "@babel/plugin-transform-runtime" ]
}
presets配置:常见的 Babel Presets
@babel/preset-react
: 这个 preset 用于转换 React 代码。它包括转换 JSX 语法的插件。 配置示例:
{ "presets" : [ [ "@babel/preset-react" , { "pragma" : "dom" , "pragmaFrag" : "DomFrag" , "throwIfNamespace" : false , "runtime" : "classic" } ] ]
}
@babel/preset-typescript
:
这个 preset 用于将 TypeScript 代码转换为 JavaScript 代码,移除 TypeScript 特有的类型信息。 @babel/preset-env
:
plugins配置:以 plugin-transform-class-properties 的类中属性为例
Babel 是一个 JavaScript 编译器,允许开发者使用最新的 JavaScript 语法和特性,并将代码转译成兼容旧版本浏览器的代码。为了扩展 Babel 的功能,有很多插件可供使用。 命令进行安装(如果没有打包工具帮助自动安装的话):npm install --save-dev @babel/plugin-transform-class-properties
.babelrc
或(babel.config.json
)配置
"plugins": [["@babel/plugin-transform-class-properties",{ "loose": true }]// 类中属性语言https://babel.nodejs.cn/docs/babel-plugin-transform-class-properties]
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="root"></div><script src="./js/index.jsx"></script>
</body>
</html>
index.jsx
import { h, Component, render } from 'preact';class App extends Component { constructor(props) { // constructor(props): 构造函数是类组件的初始化方法super(props);this.state = {// this.state: 定义组件的初始状态。在这里,state 是一个对象,用于存储组件的内部数据。Text: "WORLD",};// 事件处理函数的绑定等代码,函数bind到this对象上// this.onIpcChange = this.onIpcChange.bind(this);}render() { return(<h1>HELLO {this.state.Text}</h1>)}
}render(<App />,document.querySelector('#root'))
import { h, Component, render } from 'preact';class App extends Component { state = {Text: "WORLD",};render() { return(<h1>HELLO {this.state.Text}</h1>)}
}render(<App />,document.querySelector('#root'))