[vue]全局注册组件

在开发中我们有一些基础组件非常的常用,每一次用的话都import导入未免感觉麻烦。
在自定义指令的时候,我们通过app实现了全局的注册
注册一个图片懒加载自定义指令:

import { useIntersectionObserver } from '@vueuse/core'
// 定义懒加载插件
export const LazyPlugin = {
  install(app) {
    // 自定义全局指令
    app.directive('img-lazy', {
      mounted(el, binding) {
        // el: 指令绑定的那个dom元素,这里也就是img
        // binding: binding.value 指令等于后面绑定的表达式的值, 图片的url
        const { stop } = useIntersectionObserver(el, ([{ isIntersecting }]) => {
          if (isIntersecting) {
            el.src = binding.value
            stop()
          }
        })
      }
    })
  }
}


我们可以通过install(app),来注册全局组件。
在要注册的文件下创建一个js文件作为注册的入口

在文件中注册组件

import ImageView from '@/components/imageView/index.vue'
import Sku from '@/components/XtxSku/index.vue'

export const componentPlugin = {
  install(app) {
    app.component('XtxImageView', ImageView)
    app.component('XtxSku', Sku)
  }
}

在main.js中注册

import { componentPlugin } from '@/components/index'
app.use(componentPlugin)

这样我们使用这些注册的全局组件时,就不用import导入了,直接使用即可。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林林总肿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值