小兔鲜商03

进入可视区加载数据:
首页有很多模块,如果一次性加载所有数据,很卡,,当移动到要显示的地方,才加载数据

使用 vueuse 库中 useIntersectionObserver方法,, 传入要监听的元素 target 和监听到这个target去加载的数据api,,, 返回api请求的数据

import { useIntersectionObserver } from '@vueuse/core'
import { ref } from 'vue'/*** 懒加载组件数据,, 当组件进入可视区,再去加载* @param {Element} target  被监听的DOM* @param {Function} apiFn  发请求的api*/
export const useLazyData = (target, apiFn) => {// api请求的数据const data = ref([])// stop停止观察const { stop } = useIntersectionObserver(// target 要监听的元素target, ([{ isIntersecting }], observerElement) => {if (isIntersecting) {// 进入可视区stop()apiFn().then(res => {data.value = res.result})}}, {// 触发的门槛,,只要相交就触发threshold: 0})return data
}

vue3中获取dom节点:
先声明一个响应式变量,,然后将这个响应式变量,指向你要绑定的节点


引入全局动画,,取名字为fade,,

在这里插入图片描述
在这里插入图片描述


有的函数,参数中需要传入另一个函数,,但是直接写函数名只能传入一个不带参数的函数,,可以用箭头函数返回一个带参数的函数

 const brands = useLazyData(target, () => findBrand(10))

img标签的事件:

  • load : 当图像成功加载并完全显示
  • error : 如果图像加载失败

图片懒加载:
监听图片是否进入可视区,,,先将图片src制空,等待图片进入可视区后,将图片的url赋值给src,,,加载图片
使用到的方法: IntersectionObserver 是浏览器原生提供的构造函数,,用来监听某个DOM是否进入可视区,,, ,返回一个observer监听器,,,

// 创建一个监听器
const observer = new IntersectionObserver(callback,options)// 开始观察某个元素,, 可以同时观察多个
observer.observe(element1)
observer.observe(element2)
// 停止观察某个元素
observer.unobserve(xxx)

IntersectionObserver 中的参数:

  • callback : 监听触发的回调
    • callback的参数是一个数组,,因为可以同时监听多个元素,,每个元素都是一个IntersectionObserverEntry 对象,,这个对象中有很多属性,,比如: isIntersecting : 判断是否相交
  • options : 配置对象,,可以配置 threshold ,,触发的门槛,进入多少,触发
    在这里插入图片描述

引用:https://blog.csdn.net/qq_38629292/article/details/127200527

图片懒加载,,自定义了一个指令: v-lazy

  • vue3 自定义指令,,, vue3中自定义指令的钩子和组件的钩子是一样的:
    mounted()钩子中:
    • 第一个参数: 当前指令的DOM
    • 第二个参数: binding : 是当前指令传入的值
import XtxSkeleton from '@/components/library/xtx-skeleton'
import XtxCarousel from '@/components/library/xtx-carousel'
import XtxMore from '@/components/library/xtx-more'
import defaultImg from '@/assets/images/default.png'
export default {install (app) {// 导入组件app.component(XtxSkeleton.name, XtxSkeleton)app.component(XtxCarousel.name, XtxCarousel)app.component(XtxMore.name, XtxMore)app.directive('lazy', {mounted (el, binding) {const observer = new IntersectionObserver(([{ isIntersecting }]) => {if (isIntersecting) {// 加载之后不观察,不能重复加载observer.unobserve(el)// 指定传递的参数const imgUrl = binding.valueel.src = imgUrl// 图片加载失败,设置默认图片el.onerror = () => {el.src = defaultImg}}}, {threshold: 0})// 观察这个元素observer.observe(el)}})}
}

面包屑组件:
vue中创建html内容方式:

  • el选项 直接绑定 html节点
  • template 选项
  • render() 函数动态渲染 ,, render中传入一个函数createElement 也可以写成 h , h(你要创建的标签,{标签的属性对象},z子节点)
    在这里插入图片描述

在这里插入图片描述
如果render存在,vue不会从template选项和el选项,创建指定元素,,而是使用render

获取组件插槽中的内容: this.$slots.default() , default表示获取的默认插槽,,默认插槽的名字叫default

面包屑组件: 使用render动态创建dom,,最后一个节点没有 箭头

问题

进入可视区加载数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/114800.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot存在路径遍历漏洞CVE-2021-22118

文章目录 0.前言1.参考文档2.基础介绍1. 影响的版本2. **漏洞利用原理:** 3.解决方案3.1. 方案13.2. 方案23. 方案3 0.前言 背景:Spring Boot存在路径遍历漏洞。CVE-2021-22118: 官方 issue也有对此的记录,感兴趣可以看下 https://github.com…

8.物联网LWIP,简要介绍http(超文本,URL),html(css,ajax),web实现打开灯

一。HTTP详解 1.超文本:(HyperText) (1)超文本文件彼此链接,形成网状(web),内含有超链接(Link)与各种媒体元素标记(Markup&#xff…

微服务架构七种模式

微服务架构七种模式 目录概述需求: 设计思路实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.…

1773_把vim的tab键设置为4个空格显示

全部学习汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 有时候自己觉得自己很奇怪,看着Linux的命令窗口就觉得很顺眼。那些花花绿绿的字符以及繁多的方便命令工具,确实是比Windows强不少。不过&a…

大数据时代下的精准营销

在大数据时代,人们的信息越来越透明,留在网络上的各种数据也是企业进行营销的一个重要的生产要素。一直以来,营销的科学性正是因为运用了自然科学中一级互联网中的数据收集手段,严谨的记录、搜集和分析消费者的各项数据和日常生活…

Openlayer系列:利用GeoServer和Openlayer地图显示区域掩模

前言 利用GeoServer和Openlayer地图显示区域掩模 利用GeoServer进行图层发布 Openlayer地图显示区域掩模 对界面地图进行切换,卫星图利用GeoServer,水系等根据geojson文件生成图层,效果如下 卫星图部分代码如下: // 创建卫星图…

在CentOS7中,安装并配置Redis【个人笔记】

一、拓展——Ubuntu上安装Redis 输入命令su --->切换到root用户【如果已经是,则不需要进行该操作】apt search redis --->使用apt命令来搜索redis相关的软件包【查询后,检查redis版本是否是你需要的,如果不是则需要看看其他资料~】ap…

蓝牙运动耳机哪个牌子好、好用的运动蓝牙耳机推荐

作为一个热爱运动的人,我对耳机非常关注。我相信许多喜欢运动的人在锻炼时都会佩戴耳机,这样可以为运动增添一份乐趣,享受自己喜爱的音乐或聆听有趣的小说,激发内心的动力。但很多人都不知道要怎么选一款优质的运动耳机&#xff0…

安捷伦Agilent E8362C网络分析仪

产品概述 Agilent E8362C网络分析仪提供通用网络分析,带有可选软件和/或硬件,可根据您的应用进行定制,如多端口、脉冲射频等。 Agilent E8362C网络分析仪的显示窗口数量不限,可以调整大小和重新排列,每个窗口最多有24…

python-数据分析-numpy、pandas、matplotlib的常用方法

一、numpy import numpy as np1.numpy 数组 和 list 的区别 输出方式不同 里面包含的元素类型 2.构造并访问二维数组 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) 3.快捷构造高维数组 np.arange() np.random.randn() - - - 服从标准正态分布- - - …

【高阶数据结构】map和set的介绍和使用 {关联式容器;键值对;map和set;multimap和multiset;OJ练习}

map和set的介绍和使用 一、关联式容器 关联式容器和序列式容器是C STL中的两种不同类型的容器。 关联式容器是基于键值对的容器,其中每个元素都有一个唯一的键值,可以通过键值来访问元素。关联式容器包括set、multiset、map和multimap。 序列式容器是…

常静相伴:深度解析C++中的const与static关键字

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server

前言 基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s 等方案的测试验证。 考虑过使用二手服务器,比如 Dell R730, 还搞了一套配置清单,如下: Dell R7303.5 尺寸规格硬盘CPU: 2686v4*2 内存&a…

DBO优化SVM的电力负荷预测,附MATLAB代码

今天为大家带来一期基于DBO-SVM的电力负荷预测。 原理详解 文章对支持向量机(SVM)的两个参数进行优化,分别是:惩罚系数c和 gamma。 其中,惩罚系数c表示对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。c越小&#xff0…

链表OJ练习(1)

一、移除链表元素 本题为力扣原题203 题目介绍&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 列表中的节点数目范围在 0~10000内 1<Node.val<50 0<val<50 …

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十一:通用表单组件封装实现

一、本章内容 本章实现通用表单组件,根据实体配置识别实体属性,并自动生成编辑组件,实现对应数据填充、校验及保存等逻辑。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 3.1 B站视频地址:

OpenCV

文章目录 OpenCV学习报告读取图片和网络摄像头1.1 图片读取1.2 视频读取1.1.1 读取视频文件1.1.2读取网络摄像头 OpenCV基础功能调整、裁剪图像3.1 调整图像大小3.2 裁剪图像 图像上绘制形状和文本4.1 图像上绘制形状4.2图像上写文字 透视变换图像拼接颜色检测轮廓检测人脸检测…

【Nacos】使用Nacos进行服务发现、配置管理

Nacos Nacos是 Dynamic Naming and Configuration Service 的首字母简称&#xff0c;一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 版本说明&#xff1a;版本说明 alibaba/spring-cloud-alibaba Wiki GitHub <properties><java.version>…

传统分拣弊端明显,AI机器视觉赋能物流行业包裹分类产线数智化升级

随着电子商务的快速发展&#xff0c;物流行业的包裹数量持续增长&#xff0c;给物流企业带来了巨大的运营压力。目前&#xff0c;国内大型物流运转中心已开始采用机器视觉自动化设备&#xff0c;但多数快递公司处于半自动化状态&#xff0c;中小型物流分拣中心目前仍靠人工录入…