Refactor move docs (#8108)

* feat: [skip] generate readme script

* docs: [skip ci] update READMEs

* docs: [skip ci] fix code block type

* chore: [skip ci] move generator script
This commit is contained in:
Sven SAULEAU
2018-06-04 16:32:39 +02:00
committed by Henry Zhu
parent b6eaaa2496
commit b445b79734
143 changed files with 1286 additions and 11238 deletions

View File

@@ -1,82 +1,19 @@
# @babel/plugin-transform-react-inline-elements
> Replaces the `React.createElement` function with one that is more optimized for production: `babelHelpers.jsx`.
> Turn JSX elements into exploded React objects
## Note
See our website [@babel/plugin-transform-react-inline-elements](https://new.babeljs.io/docs/en/next/babel-plugin-transform-react-inline-elements.html) for more information.
When used alongside `@babel/plugin-transform-runtime`, polyfills (by default including `Symbol`) are specifically scoped to not pollute the global scope. This breaks usage with React, as it won't have access to that polyfill and will cause your application to fail in legacy browsers.
## Install
Even if `['@babel/plugin-transform-runtime', { helpers: true, polyfill: false }]` is specified, it might still break, since `helpers` come precompiled.
In this case, we recommend importing/requiring `@babel/polyfill` in the entry point of your application and using `@babel/preset-env` with the `useBuiltIns` option to only include the polyfills your targets need. Alternatively, you can also import/require `core-js/modules/es6.symbol` by itself.
This transform **should be enabled only in production** (e.g., just before minifying your code) because, although it improves runtime performance, it makes warning messages more cryptic and skips important checks that happen in development mode, including propTypes.
## Example
**In**
```javascript
<Baz foo="bar" key="1"></Baz>;
```
**Out**
```javascript
babelHelpers.jsx(Baz, {
foo: "bar"
}, "1");
/**
* Instead of
*
* React.createElement(Baz, {
* foo: "bar",
* key: "1",
* });
*/
```
**Deopt**
```js
// The plugin will still use React.createElement when `ref` or `object rest spread` is used
<Foo ref="bar" />
<Foo {...bar} />
```
## Installation
Using npm:
```sh
npm install --save-dev @babel/plugin-transform-react-inline-elements
npm install --save @babel/plugin-transform-react-inline-elements
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["@babel/plugin-transform-react-inline-elements"]
}
```
### Via CLI
or using yarn:
```sh
babel --plugins @babel/plugin-transform-react-inline-elements script.js
yarn add --save @babel/plugin-transform-react-inline-elements
```
### Via Node API
```javascript
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-transform-react-inline-elements"]
});
```
## References
* [[facebook/react#3228] Optimizing Compiler: Inline React Elements](https://github.com/facebook/react/issues/3228)