docs_vue2/one/docs/getting-started/babel-plugin-veui.md
2020-08-13 11:47:56 +08:00

79 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# babel-plugin-veui
:::tip
VEUI 目前在 npm 上直接以源码方式进行发布,在使用时必须提前转译(其中的优缺点和取舍可以参考 [Henry Zhu](https://www.patreon.com/henryzhu) 在 Babel 的官方博客上发布的[这篇文章](https://babeljs.io/blog/2018/06/26/on-consuming-and-publishing-es2015+-packages)。VEUI 的源代码依赖 Lodash 和 Vue JSX 相关的 Babel 插件才能正确转译。此外VEUI 还提供了自己的 Babel 插件,以帮助应用书写更简单的 `import` 语句的同时最小化代码的体积。
:::
## 按需引入组件
这个 Babel 插件可以让我们直接书写更简单的 `import` 语句而无需担心会将 VEUI 整体引入到项目中。
该插件的主要功能就是将如下语句:
```js
import { Button, Input } from 'veui'
```
自动转成:
```js
import Button from 'veui/components/Button'
import Input from 'veui/components/Input'
```
这样最终我们打包的代码就只会包含真正用到的组件了。功能类似 Lodash 的 [babel-plugin-lodash](https://github.com/lodash/babel-plugin-lodash) 插件。
## 自动添加前缀
为了避免与原生元素名冲突,我们在注册组件时需要以如下的方式为其添加前缀:
```js
export default {
components: {
'veui-button': Button,
'veui-input': Input
}
// ...
}
```
由于这种方式显得有些冗长,所以 `babel-plugin-veui` 支持了如下写法:
```js
import { VeuiButton, VeuiInput } from 'veui'
export default {
components: {
VeuiButton,
VeuiInput
}
// ...
}
```
当引入的组件名带 `Veui` 前缀时可以自动对应到相应的模块。这样就可以直接在模板中按如下方式引用了:
```html
<veui-button>提交</veui-button>
```
除了 `veui-` 前缀外babel-plugin-veui 还支持直接使用 `v-` 前缀:
```js
import { VButton, VInput } from 'veui'
export default {
components: {
VButton,
VInput
}
// ...
}
```
然后这样使用:
```html
<v-button>提交</v-button>
```