美文网首页vue
vue3图片懒加载

vue3图片懒加载

作者: 王果果 | 来源:发表于2021-07-29 22:03 被阅读0次

图片懒加载

  • src/direcitves/index.js
  • 在main.js中引入该文件import directivePlugin from '@/direcitves'
  • 在main.js中去全局注册插件createApp(App)..use(directivePlugin).mount('#app')
  • 使用:已经全局注册,直接在img标签上加v-img-lazy="图片路径" ,并把img标签本身的src属性删除
  • 在导入的defaultImg 后导入默认图片的路径
import { useIntersectionObserver } from '@vueuse/core'
import defaultImg from '@/assets/images/200.png'  //默认加载图片
const plugin = {
  install (app) {
    console.log('指令插件', app)
    // app.directive() todo
    // 编写图片懒加载指令逻辑
    app.directive('img-lazy', {
      mounted (el, binding) {
        // el:指令绑定的dom元素
        // binding: value  指令绑定的表达式的值
        console.log(el, binding.value)
        // 懒加载的逻辑:监听当前的img dom对象是否进入到视口区域  如果进入 就把图片的地址交给img 的src属性
        // 一旦src有了值就会自动发送http请求 获取图片资源
        const { stop } = useIntersectionObserver(
          el,
          ([{ isIntersecting }], observerElement) => {
            // isIntersecting: 当前监听的元素是否成功进入到视口区域如果进来了就是true 否则就是false
            // 有了一个判断是否进入视口区域的条件 如果为true就发送请求
            if (isIntersecting) {
              // 错误处理
              el.onerror = function () {
                // 使用默认图片交给src
                el.src = defaultImg
              }
              el.src = binding.value
              stop()
            }
            // 监听处理不是只进行一次的 每次进入移出视口都会再次执行回调
          },
          // 0 - 1 数值越大代表 要求进入的面积越大才能触发回调函数
          { threshold: 0 }
        )
      }
    })
  }
}

export default plugin

相关文章

  • vue3图片懒加载

    图片懒加载 src/direcitves/index.js 在main.js中引入该文件import direct...

  • vue3图片懒加载

    目的: 当图片进入可视区域内去加载图片,且处理加载失败,封装成指令。介绍一个webAPI:Intersection...

  • 项目优化

    图片懒加载,数据懒加载, 路由懒加载 1.图片懒加载原理 1.1 开始时 不设置src属性 1.2 图片在可视区域...

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • Vue2与Vue3区别

    1、 组件的懒加载 1.1 Vue2实现 1.2 Vue3实现

  • 图片懒加载

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片。 预...

  • 图片懒加载

    图片懒加载 图片懒加载在一些图片密集型的网站中运用比较多,通过图片懒加载可以让一些不可视的图片不去加载,避免一次性...

  • js 实现图片懒加载

    一、懒加载 懒加载也叫延迟加载,Js中图片的延迟加载,延迟图片需要符合某些条件时才加载;对于图片过多的页面,为了加...

  • 图片懒加载和预加载

    图片懒加载的原理是什么? 首先明白为什么要懒加载: 懒加载即延迟,对于图片过多的页面,为了加快页面加载速度,我们需...

  • selenuim和phantonJs处理网页动态加载数据的爬取

    一.图片懒加载 什么是图片懒加载? 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源...

网友评论

    本文标题:vue3图片懒加载

    本文链接:https://www.haomeiwen.com/subject/squvmltx.html