big-element

A component library based on element-ui and element-plus.
1,226
Install
npm install big-element
Latest Version:1.3.4
Vue:2 · 3
License:MIT
Last Updated:Dec 18, 2024
Links: GitHub  ·  npm
Maintainer: wangzl1163

big-element npm

一个基于 element 组件库中的组件封装的组件库。big-element 适配了 element-ui 和 element-plus 组件库,支持被封装的组件在这两个组件库中原有的属性。

big-element 是通过未经转译的 Vue 单文件组件及 ES 模块进行发布的,需要与用户项目本身一同编译构建。

特性

组件自治:组件的动画或展示效果封装到组件内部尽量与业务脱离,组件根据传入数据的变化自动处理加载动画或展示效果。

感谢

在开发过程中从 VEUI 组件库中得到很多启发,在此表示感谢。

用法

0、环境支持

Edge Firefox Chrome Safari
Edge ≥ 79 Firefox ≥ 78 Chrome ≥ 64 Safari ≥ 12

1、安装

npm install big-element

2、快速上手 这里以 Vue3 为开发环境作为示例。

在开始前先安装 element-ui 或者 element-plus

2.1 概念

常规组件:基于 element 的组件进行封装的组件 非常规组件:对第三方的组件进行封装而成的组件,比如:ECharts 组件

2.2 常规组件完整引入

// main.ts
import { createApp } from 'vue'
import Router from './router';
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 引入组件库
import BigElement from 'big-element';
// 引入样式
import 'big-element/packages/Theme/index.css'
import App from './App.vue'

const app = createApp(App)

app.use(Router)
app.use(ElementPlus)
app.use(BigElement)
app.mount('#app')

2.3 常规组件按需引入

// main.ts
import { createApp } from 'vue'
import Router from './router';
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 引入组件库
import { BeTable, BeDialog } from 'big-element';
// 引入样式
import 'big-element/packages/Theme/index.css'
import App from './App.vue'

const app = createApp(App)

app.use(Router)
app.use(ElementPlus)
app.use(BeTable)
app.use(BeDialog)
app.mount('#app')

2.4 非常规组件引入 非常规组件往往用于特定的业务场景,比如:ECharts 组件用于需要展示图表的项目或某个页面,所以往往单个引入。

// main.ts
import { createApp } from 'vue'
import Router from './router';
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
// 引入组件
import BeECharts from 'big-element/packages/Components/ECharts';
// 引入样式
import 'big-element/packages/Theme/Components/ECharts.css'
import App from './App.vue'

const app = createApp(App)

app.use(Router)
app.use(ElementPlus)
app.use(BeECharts)
app.mount('#app')

3、特别说明 3.1 按需加载 ECharts 模块 自 v1.2.1 版本开始 BeECharts 组件支持按需加载 ECharts 模块即从 prop 传入需要加载的 ECharts 模块。

<template>
   <BeEcharts
      :option="option"
      :show-chart-width-no-data="true"
      :echartsComponents="[LineChart,DataZoomComponent]"
   />
</template>
<script lang="ts" setup>
import { ref,} from "vue";
// 引入组件中未引入的 ECharts 模块
import { LineChart } from 'echarts/charts'
import { DataZoomComponent } from 'echarts/components'

const option={}
<script>

注意:在以 Vite 为打包工具的项目中需要在其配置文件 vite.config.ts(js) 中增加 optimizeDeps.exclude 配置项,否则在开发模式中无法正确显示图表。

export default defineConfig({
  optimizeDeps: {
    exclude: ['echarts']
  }
})

Related Packages

vue

The progressive JavaScript framework for building modern web UI.

588,019,132 54,801
vue
@vueuse/shared
372,738,348 22,398
@vueuse/core

Collection of essential Vue Composition Utilities

367,188,523 22,398
@vitejs/plugin-vue

The official plugin for Vue SFC support in Vite.

333,357,380 686
eslint-plugin-vue

Official ESLint plugin for Vue.js

266,364,830 4,591

Version History

Version Released Vue License
1.3.4 ^2.6.0 || ^3.2.0 MIT
1.3.3 ^2.6.0 || ^3.2.0 MIT
1.3.2 ^2.6.0 || ^3.2.0 MIT
1.3.1 ^2.6.0 || ^3.2.0 MIT
1.3.0 ^2.6.0 || ^3.2.0 MIT
Pre-releases (45)
Version Released Vue License
1.2.0-beta.2 ^2.6.0 || ^3.2.0 MIT
1.2.0-beta.1 ^2.6.0 || ^3.2.0 MIT
1.1.0-beta.13 ^2.6.0 || ^3.2.0 MIT
1.1.0-beta.12 ^2.6.0 || ^3.2.0 MIT
1.1.0-beta.11 ^2.6.0 || ^3.2.0 MIT