Skip to main content

组件库入口文件的设计

所有组件一次性全部导入并且作为插件使用

import LegoComponents from 'lego-components'
app.use(LegoComponents)

  • 建立一个入口文件index.ts
  • 将所有组件导入,作为一个数组,创建一个install函数,循环调用app.component
  • 默认导出一个插件(这个install函数)
import { App } from 'vue'
import LText from './components/LText'
import LImage from './components/LImage'
import LShape from './components/LShape'

const components = [
LText,
LImage,
LShape
]

const install = (app: App) => {
components.forEach(component => {
app.component(component.name, component)
})
}

export {
LText,
LImage,
LShape,
install
}
export default {
install
}

单个组件导入并且作为插件使用

import { LText } from 'lego-components'
app.use(LText)
// 或者
app.component(LText.name, LText)

  • 每个组件新建一个文件夹,并且创建一个单独的index.ts文件
  • 每个组件设计成一个插件(一个object拥有install方法)
  • 在全局入口文件导出
import { App } from 'vue'
import LText from './LText.vue'
LText.install = (app: App) => {
app.component(LText.name, LText)
}

export default LText