vue抽离自定义指令和自定义组件(个人组件库封装逻辑)

本文使用vue3作为示例,对自定义指令和自定义组件进行封装和融合,最后达到封装个人组件库,达到不同项目功能组件都可以复用的目的。

封装思维

我们在使用vue-router,pinia,element-plus,等组件的时候,我们有没有想过一个问题,element-plus是如何把组件和一些指令注册到我们的项目当中。

我们使用use方法又如何可以把这些组件注册成全局组件,供我们全局调用。

关键:其实app.use(module)会执行里面的一个默认会执行该函数里面的install函数

那么按照这个逻辑我们是否也能封装属于自己的组件库呢?

方法实践

首先我们创建一个js文件,写一个导出模块,里面只有一个install方法,且install方法会指向vue的实例

//index.js
export default {
    install(app) {
        console.log('我被执行了');
    }
}

在main.js引入这个文件,并使用app.use(index)执行这段命令

import index from './index'
app.use(index)

我们发现这段命令被执行了,那么现在我们就可以把我们的组件和指令放入到这个文件中,作为自己的组件库,去执行这个文件。

代码实现

//index.js
//引入echart组件
import Chart from '@/components/echarts/chart.vue';
//拖拽指令
import drag from '@/utils/draggable';
export default {
    install(app) {
        console.log(app);
         app.component('Chart', Chart);
         app.directive('drag', drag);
    }
}

//main.js
import index from './index'
app.use(index)

这里我们可以创建一个文件夹,然后写自定义指令和组件到改文件夹中,然后使用这种方式引入他,这样就算我们到另一个项目,也只需要拷贝这个文件夹,然后直接使用use方法调用组件库就可以了。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值