Vue引入部分element.ui组件的一些小坑记录
作者:聽風娓娓道來
这篇文章主要介绍了Vue引入部分element.ui组件的一些小坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
vue引入部分element.ui组件的坑
做的这个vue项目使用的都是element.ui的组件,一开始没注意,也为了省事,全部引入,后期因为为了项目轻量化,采用部分引入,踩了不少坑。
如何在路径上不用#
index.js
mode: 'history',
全部引入方式
main.js
import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' //样式必须引入 Vue.use(ElementUI)
全部引入没任何问题
部分引入
借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。
首先,安装 babel-plugin-component:
npm install babel-plugin-component -D
一开始按照文档
.babelrc修改如下
{ "presets": [["es2015", { "modules": false }]], "plugins": [ [ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ] ] }
只用button,select做例子
main.js
import { Button, Select } from 'element-ui'; Vue.component(Button.name, Button); Vue.component(Select.name, Select); //或者 Vue.use(Button) Vue.use(Select)
运行报错
后来参照别的方式
.babelrc
{ "presets": [ ["env", { "modules": false, "targets": { "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] } }], "stage-2" ], "plugins": ["transform-vue-jsx", "transform-runtime", [ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ]], "env": { "test": { "presets": ["env", "stage-2"], "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"] } } }
就ok了
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。