# elementplus

npm install element-plus --save

# 在ts项目中完整引入

// main.ts
import { createApp } from 'vue'
import ElementPlus from 'element-plus'//1
import 'element-plus/dist/index.css'//2
import App from './App.vue'

const app = createApp(App)

app.use(ElementPlus)//3
app.mount('#app')

使用 Volar,请在 tsconfig.json 中通过 compilerOptions.type 指定全局组件类型。

// tsconfig.json
{
  "compilerOptions": {
    // ...
    "types": ["element-plus/global"]//1
  }
}

全局引入后在项目中使用例子

<template>
  <div class="about">
    <h1>This is an about page</h1>
    {{ timer }}
    <el-button @click="add">button</el-button>
  </div>
</template>
<script lang="ts">
interface data {
  timer: number;
  double?: string;
}
export default {
  data(): data {
    return {
      timer: 1,
    };
  },
  methods: {
    add(): void {
      this.timer++;
      this.$message.success("ok");
    },
  },
};
</script>

# 自动导入elementplus(不包括非template中使用组件[如message之类的])

npm i unplugin-vue-components unplugin-auto-import -D
  • vue.config.js
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')

module.exports = {
    configureWebpack: {
      plugins: [
        AutoImport({
          resolvers: [ElementPlusResolver()],
        }),
        Components({
          resolvers: [ElementPlusResolver()],
        }),
      ],
}
    }
<template>
    <div>
        <el-button>按钮</el-button>
    </div>
</template>

# elementplus手动导入借助babel导入样式

// 可以引入全局样式,当然也可以进入文件查看,只引入el-button的css,basecss也需要引入
import { ElButton } from 'element-plus'
  • babel.config.js:引入插件后配置
cnpm install babel-plugin-import -D
module.exports = {
  plugins: [
    [
      'import',
      {
        libraryName: 'element-plus',
        customStyleName: (name) => {
		  // 注意查看:新版本的elementplus这里的路径已经修改了,根据实际需要去处理
          return `element-plus/lib/theme-chalk/${name}.css`
        }
      }
    ]
  ],
  presets: ['@vue/cli-plugin-babel/preset']
}
import {
  ElButton,
  ElTable,
  ElAlert,
  ElAside,
  ElAutocomplete,
  ElAvatar,
  ElBacktop,
  ElBadge,
} from 'element-plus'

const app = createApp(App)

const components = [
  ElButton,
  ElTable,
  ElAlert,
  ElAside,
  ElAutocomplete,
  ElAvatar,
  ElBacktop,
  ElBadge
]

for (const cpn of components) {
  app.component(cpn.name, cpn)
}
最后更新: 9/9/2022, 1:49:12 PM