vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue引入部分element.ui组件的坑

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了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文