哪些企业必须用网站,wordpress付费主题破解,建筑贴图素材网站,查注册公司这里写目录标题 安装 Babel配置presets配置#xff1a;常见的 Babel Presetsplugins配置#xff1a;以 plugin-transform-class-properties 的类中属性为例index.jsx Babel 是一个独立的 JavaScript 编译器#xff0c;主要用于将现代 JavaScript 代码转换为旧版本的 JavaScr… 这里写目录标题 安装 Babel配置presets配置常见的 Babel Presetsplugins配置以 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 语法的插件。配置示例
// https://babel.nodejs.cn/docs/babel-preset-react
{presets: [[babel/preset-react,{pragma: dom, // default pragma is React.createElement (only in classic runtime)pragmaFrag: DomFrag, // default is React.Fragment (only in classic runtime)throwIfNamespace: false, // defaults to trueruntime: classic // defaults to classic// importSource: custom-jsx-library // defaults to react (only in automatic runtime)}]]
}babel/preset-typescript 这个 preset 用于将 TypeScript 代码转换为 JavaScript 代码移除 TypeScript 特有的类型信息。 babel/preset-env 这个 preset 用于将现代 JavaScript 代码转换为兼容的 JavaScript 代码。它根据目标环境如浏览器或 Node.js 的版本自动选择需要的插件和 polyfills。可以通过配置 targets 字段指定要支持的浏览器或环境。例如{presets: [[babel/preset-env,{targets: 0.25%, not dead}]]
}上面的配置表示目标是市场份额大于 0.25% 的浏览器并且不是“已死”的浏览器即不再接收更新的浏览器。
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]比如对以下.html文件的渲染
!DOCTYPE html
html langzh
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title
/head
bodydiv idroot/divscript src./js/index.jsx/script
/body
/htmlindex.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(h1HELLO {this.state.Text}/h1)}
}render(App /,document.querySelector(#root))简化为
import { h, Component, render } from preact;class App extends Component { state {Text: WORLD,};render() { return(h1HELLO {this.state.Text}/h1)}
}render(App /,document.querySelector(#root))