iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用
  • 843
分享到

vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用

2023-07-05 12:07:27 843人浏览 薄情痞子
摘要

这篇文章主要介绍“vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue3图片懒加载In

这篇文章主要介绍“vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用”文章能帮助大家解决问题。

1、在src下创建helloworld.js 内容如下

// 随便导入一张图片作为加载出错时的默认图片import defaultImg from '@/assets/loGo.svg'import {useIntersectionObserver} from "@vueuse/core"; //图片加载失败时候用的图片export default {    install (app) {        defineDirective(app)//自定义指令    }}// 自定义指令const defineDirective = (app) => {    // 1.图片懒加载指令v-lazyLoad// 原理:先存储图片地址不能在src上,当图片进入可视区,将你存储图片地址设置给图片元素(dom)的src即可。    app.directive('lazyLoad', {        // vue2.0监听使用指令的DOM是否创建好,钩子函数: inserted        // vue3.0 的指令拥有的钩子函数和组件的一样,使用指令的DON是否创建好,钩子函数: mounted,onMounted是在组合api时候使用,现在是选项        mounted (el, binding) { // 绑定的元素,绑定的值            // // 2.创建一个观察对象,来观察当前使用指令得元素            const observe = new IntersectionObserver(([{isIntersecting}]) => {                if (isIntersecting) { // 如果进入了可视区                    // 谁进入了可视区?得用observe去观察 是哪个元素使用了该指令,所以会传入dom对象el                    // 停止观察,因为观察一次就够了                    observe.unobserve(el)                    // console.log(binding.value, el) // binding.value就是绑定的地址                    // 3.监听图片加载失败,用默认图                    el.onerror = () => {                        el.src = defaultImg                    }                    // 4.将指令v-lazyLoad上的地址设置给el的src属性                    el.src = binding.value                }            }, {                threshold: 0//进入到可视区交界就开始观察            })            observe.observe(el)// 使用observe上的observe方法观察这个dom元素        }            // const { stop } = useIntersectionObserver(            //     // 监听目标元素            //     el,            //     ([{ isIntersecting }], observerElement) => {            //         if (isIntersecting) {            //             // 当图片url无效加载失败的时候使用默认图片替代            //             el.onerror = function () {            //                 el.src = defaultImg            //             }            //             console.log('加载')            //             el.src = binding.value            //             stop()            //         }            //     })            // }    })}

上边的代码中mounted下边这个是一种方式,这种方式不借助插件即不用安装任何东西

const observe = new IntersectionObserver(([{isIntersecting}]) => {        if (isIntersecting) { // 如果进入了可视区            // 谁进入了可视区?得用observe去观察 是哪个元素使用了该指令,所以会传入dom对象el            // 停止观察,因为观察一次就够了            observe.unobserve(el)            // console.log(binding.value, el) // binding.value就是绑定的地址            // 3.监听图片加载失败,用默认图            el.onerror = () => {                el.src = defaultImg            }            // 4.将指令v-lazyLoad上的地址设置给el的src属性            el.src = binding.value        }    }, {        threshold: 0//进入到可视区交界就开始观察    })    observe.observe(el)// 使用observe上的observe方法观察这个dom元素}

mounted 下边带注释的是另一种方式,这种方式需要安装插件安装过程点击进入教程

// const { stop } = useIntersectionObserver(//     // 监听目标元素//     el,//     ([{ isIntersecting }], observerElement) => {//         if (isIntersecting) {//             // 当图片url无效加载失败的时候使用默认图片替代//             el.onerror = function () {//                 el.src = defaultImg//             }//             console.log('加载')//             el.src = binding.value//             stop()//         }//     })// }

2、在main.js中导入并使用

import { createApp } from 'vue'import App from './App.vue'import './assets/reset.CSS'import Vant from 'vant'import 'vant/lib/index.css';// 导入自己UI组件库import UI from './helloworld'// 插件的使用,在main.js使用app.use(插件)createApp(App).use(Vant).use(UI).mount('#app')// 具体就是导入这个// import UI from './helloworld'// 再use(UI)

3、再app.vue中使用如下:

<template>  <div class="cs"></div>  <ul >    <li v-for="item in image_list" :key="item"><!--      原本的写法-->      <!-- <img :src="item.picture"  alt=""> --><!--      // 使用图片懒加载指令-->      <img v-lazyLoad="item"  alt="">    </li>  </ul></template><script setup>import {nextTick, onMounted, ref} from "vue";const image_list = ref([    'https://file.lsjlt.com/upload/202307/04/dpu4tunefdh.jpg',    'Https://file.lsjlt.com/upload/202307/04/hmg53xtda2v.jpg',    'https://file.lsjlt.com/upload/202307/04/zfg1hvcevct.jpg',    'https://file.lsjlt.com/upload/202307/04/uq55fqjtna4.jpg',    'https://file.lsjlt.com/upload/202307/04/y0ufq3Dgt03.png',    'https://file.lsjlt.com/upload/202307/04/by5bjkmzf0m.jpg',    'https://file.lsjlt.com/upload/202307/04/3aynj1itlym.jpg'])</script><style lang="less" scoped>.cs{  height: 1000px;  background-color: pink;}.outer{  img{    display: inline-block;    width: 500px;  }}.inner{  display: inline-block;  width: 500px;  height: 50px;  background-color: deeppink;}</style>

关于“vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用

本文链接: https://www.lsjlt.com/news/351813.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用
    这篇文章主要介绍“vue3图片懒加载IntersectionObserver和useIntersectionObserver怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue3图片懒加载In...
    99+
    2023-07-05
  • vue3图片懒加载IntersectionObserver和useIntersectionObserver如何用
    这篇文章主要讲解了“vue3图片懒加载IntersectionObserver和useIntersectionObserver如何用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3图片...
    99+
    2023-07-06
  • vue3 图片懒加载的两种方式、IntersectionObserver和useIntersectionObserver实例详解
    目录1、在src下创建helloworld.js 内容如下2、在main.js中导入并使用3、再app.vue中使用如下:1、在src下创建helloworld.js 内容如下 //...
    99+
    2023-03-19
    vue3 图片懒加载 vue3 IntersectionObserver和useIntersectionObserver vue图片懒加载
  • IntersectionObserver懒加载怎么用
    这篇文章给大家分享的是有关IntersectionObserver懒加载怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概念IntersectionObserver接口(从属...
    99+
    2024-04-02
  • vue3怎么使用@vueuse/core中的图片懒加载
    这篇文章主要介绍“vue3怎么使用@vueuse/core中的图片懒加载”,在日常操作中,相信很多人在vue3怎么使用@vueuse/core中的图片懒加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue...
    99+
    2023-07-05
  • jQuery中图片懒加载lazyload.js怎么用
    这篇文章将为大家详细讲解有关jQuery中图片懒加载lazyload.js怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。lazyload是一个用Javascript...
    99+
    2024-04-02
  • javascript实现图片预加载和懒加载
    本文实例为大家分享了javascript实现图片预加载和懒加载的具体代码,供大家参考,具体内容如下 预加载 预加载是预先加载好后面需要用到的资源, 后面使用的时候直接去缓存里取。举个...
    99+
    2024-04-02
  • JavaScript怎么实现图片懒加载
    本篇内容介绍了“JavaScript怎么实现图片懒加载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现思路实现图片懒加载我们需要先明白具体...
    99+
    2023-07-02
  • Vue怎么实现图片懒加载
    本篇内容主要讲解“Vue怎么实现图片懒加载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue怎么实现图片懒加载”吧! 1.下载 npm i vue-laz...
    99+
    2024-04-02
  • JS图片懒加载库VueLazyLoad怎么使用
    这篇文章主要介绍“JS图片懒加载库VueLazyLoad怎么使用”,在日常操作中,相信很多人在JS图片懒加载库VueLazyLoad怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS图片懒加载库Vue...
    99+
    2023-07-05
  • 怎么实现vue-lazyload图片懒加载
    这篇文章主要介绍“怎么实现vue-lazyload图片懒加载”,在日常操作中,相信很多人在怎么实现vue-lazyload图片懒加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • js怎么实现图片的懒加载
    这篇文章给大家分享的是有关js怎么实现图片的懒加载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。图片的懒加载是前端优化必须要掌握的东西,图片实现懒加载可以节省带宽又可以减轻我们网页的负荷。接下来我来记录一下我所掌...
    99+
    2023-06-14
  • vue3中使用@vueuse/core中的图片懒加载案例详解
    点击进入vueuse官网 1、首先安装 npm i @vueuse/core 2、新建一个helloworld.js文件,内容如下: import { useIntersectio...
    99+
    2023-03-19
    vue3图片懒加载 vue3 @vueuse/core
  • javascript如何实现图片预加载和懒加载功能
    这篇文章主要介绍“javascript如何实现图片预加载和懒加载功能”,在日常操作中,相信很多人在javascript如何实现图片预加载和懒加载功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascr...
    99+
    2023-06-14
  • 图片懒加载怎么从简单到复杂
    本篇内容主要讲解“图片懒加载怎么从简单到复杂”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“图片懒加载怎么从简单到复杂”吧!为什么要做图片的懒加载假设在用户访问某...
    99+
    2024-04-02
  • vue里面如何使用图片的懒加载
    目录前言一、安装相关的包二、使用步骤1.引入2.使用三、关于包的相关构成1. 简单介绍2. 简单操作总结前言 什么是懒加载 通俗地讲就是需要用到图片的时候再去加载懒加载的好处在于减少...
    99+
    2024-04-02
  • 前端JS图片懒加载原理是什么
    这篇文章主要介绍“前端JS图片懒加载原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“前端JS图片懒加载原理是什么”文章能帮助大家解决问题。原理图片懒加载的原理是没有在可视区域的图片暂时不加载...
    99+
    2023-07-05
  • vue3组合式api实现v-lazy图片懒加载的方法实例
    目录前置知识Intersection ObserverVue3指令周期image对象思路完整代码总结前置知识 Intersection Observer 浏览器提供api,用于检测目...
    99+
    2024-04-02
  • vue中如何使用图片懒加载vue-lazyload插件
    这篇文章给大家分享的是有关vue中如何使用图片懒加载vue-lazyload插件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:说明当网络请求比较慢的时候,提前给这张图片...
    99+
    2024-04-02
  • react懒加载怎么使用
    这篇文章主要介绍“react懒加载怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react懒加载怎么使用”文章能帮助大家解决问题。react懒加载是指不会预加载,而是需要使用某段代码,某个组...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作