vue自定义指令

本文介绍了一种不依赖插件的Vue懒加载实现方法,通过自定义指令完成图片的延迟加载,有效提升项目性能。文章详细解释了如何在图片进入可视区域时动态替换图片源,以及在资源未加载成功时的默认图片处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于在项目中会加载大量的图片,因此需要使用懒加载技术,虽然网上有很多关于vue的懒加载的插件,如vue-lazyload。但是希望能在项目中通过自定义的组件和一些vue的语法糖去完成,而不是需要时就导入插件,那样学到的东西会很少。关于vue指令的知识请参考官方文档
在这里我只是介绍一下我写的简单的懒加载指令:
directives: {
    lazy:{
      inserted (el, binding) {
        const value = binding.value
        // 将图片链接赋给绑定对象
        el.setAttribute('src', value)
        // 设置延迟,判断当前能否获取到图片资源,不能时设置默认图片
        setTimeout(() => {
          if (!el.getAttribute('complete')) {
            el.setAttribute('src', 'http://img.warting.com/allimg/2018/1112/1-1Q112224253H3.jpg')
            return false
          }
          return true
        }, Math.random() * 200)
      }
    }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值