vue项目引入element-ui

2022-03-23 14:08:52 浏览数 (1)

1、安装element-ui
代码语言:javascript复制
npm i element-ui -S
2、完整引入 Element

在 main.js 中写入以下内容:

代码语言:javascript复制
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';

Vue.use(ElementUI);

new Vue({
  el: '#app',
  render: h => h(App)
});

以上代码便完成了 Element 的引入。需要注意的是,样式文件需要单独引入。

3、按需引入

借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

首先,安装 babel-plugin-component:

代码语言:javascript复制
npm install babel-plugin-component -D

然后,将 .babelrc 修改为:

代码语言:javascript复制
{
  "presets": [["es2015", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

截屏2022-03-01 上午10.43.07.png

4、管理按需引入

为了方便管理,建议在src文件夹下创建element-ui文件夹,并在里面创建index.js文件配置需要的组件。

截屏2022-03-01 上午10.46.13.png

代码语言:javascript复制
import { Button, Option, Select, Switch, MessageBox, Message } from 'element-ui'
const element = {
  install: function(Vue) {
    Vue.use(Button)
    Vue.use(Switch)
    Vue.use(Select)
    Vue.use(Option)
    // 往vue实例原型里添加消息提示,方便全局调用
    Vue.prototype.$msgbox = MessageBox
    Vue.prototype.$alert = MessageBox.alert
    Vue.prototype.$confirm = MessageBox.confirm
    Vue.prototype.$message = Message
    //使用:this.$message('这是一条消息提示');
  }
}
export default element
5、在 main.js 中引入组件
代码语言:javascript复制
//element-ui样式引入
import 'element-ui/lib/theme-chalk/index.css'
//element-ui文件夹下
import element from './element-ui/index'
Vue.use(element)
6、测试代码
代码语言:javascript复制
<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <el-button round @click="showMsgAlert">Button</el-button>
    <el-alert></el-alert>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  },
  methods: {
    showMsgAlert() {
      this.$alert('这是一段内容', 'element-ui Alert', {
        confirmButtonText: '确定',
        cancelButtonText:'取消',
        showCancelButton: true,
        callback: action => {
          this.$message({
            type: 'info',
            message: `action: ${ action }`
          });
        }
      });
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1 {
  font-weight: normal;
}
</style>

截屏2022-03-01 上午10.48.41.png

0 人点赞