feat: publicize doc implemetation
This commit is contained in:
78
one/docs/en-US/getting-started/babel-plugin-veui.md
Normal file
78
one/docs/en-US/getting-started/babel-plugin-veui.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# babel-plugin-veui
|
||||
|
||||
:::tip
|
||||
Currently VEUI is published on npm in the form of source code and has to be transpiled before use. (Read more about the trade-off of publishing source code in [this post](https://babeljs.io/blog/2018/06/26/on-consuming-and-publishing-es2015+-packages) published by [Henry Zhu](https://www.patreon.com/henryzhu) on Babel's blog.) Babel plugins for Lodash and Vue JSX are required to transpile VEUI and VEUI provides its own Babel plugin to offer minimized code size while simply `import`ing components.
|
||||
:::
|
||||
|
||||
## Cherrypicking components
|
||||
|
||||
This Babel plugin allows you to write simple `import` statements without importing VEUI as a whole.
|
||||
|
||||
With this plugin, the following statement:
|
||||
|
||||
```js
|
||||
import { Button, Input } from 'veui'
|
||||
```
|
||||
|
||||
will be automatically transformed into:
|
||||
|
||||
```js
|
||||
import Button from 'veui/components/Button'
|
||||
import Input from 'veui/components/Input'
|
||||
```
|
||||
|
||||
So only the components that are actually imported will appear in the final bundle. It works similarly with Lodash's [babel-plugin-lodash](https://github.com/lodash/babel-plugin-lodash).
|
||||
|
||||
## Automatic prefixing
|
||||
|
||||
To avoid conflict with native HTML elements, it's recommended to prefix components when they are registered as follows:
|
||||
|
||||
```js
|
||||
export default {
|
||||
components: {
|
||||
'veui-button': Button,
|
||||
'veui-input': Input
|
||||
}
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
It's kind of verbose so `babel-plugin-veui` helps to support the following usage:
|
||||
|
||||
```js
|
||||
import { VeuiButton, VeuiInput } from 'veui'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
VeuiButton,
|
||||
VeuiInput
|
||||
}
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
When the imported component is prefixed with `Veui` the plugin will find the corresponding component without the prefix. Now it's possible to use components inside templates as follows:
|
||||
|
||||
```html
|
||||
<veui-button>Submit</veui-button>
|
||||
```
|
||||
|
||||
Apart from the prefix `veui-`, `babel-plugin-veui` also supports using `v-` as a prefix:
|
||||
|
||||
```js
|
||||
import { VButton, VInput } from 'veui'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
VButton,
|
||||
VInput
|
||||
}
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
And use as follows:
|
||||
|
||||
```html
|
||||
<v-button>Submit</v-button>
|
||||
```
|
||||
Reference in New Issue
Block a user