首页 > 其他分享 >vue3无限滚动插件

vue3无限滚动插件

时间:2022-10-15 12:01:04浏览次数:53  
标签:插件 滚动 state vue3 infinite scroll 加载

vue3无限滚动插件

vue3-infinite-scroll-better

支持Vue3的滚动加载插件,所有用法和vue-infinite-scroll一致。并解决了一些bug。

安装

npm install vue3-infinite-scroll-better --save

api

参数 说明 类型 默认值
infinite-scroll-throttle-delay 滚动延迟 number 200
infinite-scroll-disabled 是否禁止 boolean false
infinite-scroll-distance 滚动条距离底部的距离 number 0
infinite-scroll-immediate-check 是否立即触发滚动 boolean true
infinite-scroll-watch-disabled infinite-scroll-disabled绑定的对应值 string null

指令

指令名称 说明 回调参数 版本
v-infinite-scroll 指令,执行滚动触发的事件 () => void -

使用示例

main.ts

import infiniteScroll from 'vue3-infinite-scroll-better'
app.use(infiniteScroll).mount('#app')

组件中使用

 <section
    v-infinite-scroll="handleInfiniteOnLoad"
    :infinite-scroll-immediate-check="false"
    :infinite-scroll-disabled="scrollDisabled"
    infinite-scroll-watch-disabled="scrollDisabled"
    :infinite-scroll-distance="20">
    <div v-for="res in state.resData" :key="res.id" class="blogs">
     <span class="bg-red-100">{{ res.label.name }}</span>
    </div>
    <div v-if="scrollDisabled">数据加载完毕</div>
 </section>

js

const handleInfiniteOnLoad = async () => {
  // 异步加载数据等逻辑
  if (scrollDisabled.value) { //当前读取的数据总数是否大于内容总数
    // 数据加载完毕
  } else {
    // 加载数据列表
    state.pagesize += 8 //每页显示的数量
    await method.GetFy()//读取分页数据 state.resData
  }
}
const scrollDisabled = computed(() => {
  return state.resData.length >= state.count
})

onMounted(async () => {
  await method.GetCount(0, 'null') //state.count 内容总条数
  await method.GetFy() //读取分页数据 state.resData
})

标签:插件,滚动,state,vue3,infinite,scroll,加载
From: https://www.cnblogs.com/ouyangkai/p/16793861.html

相关文章

  • FreeBSD下开发Python插件并使用nuitka打包
    承接前面的文章https://www.cnblogs.com/passedbylove/p/16759512.htmlhttps://www.cnblogs.com/passedbylove/p/16756063.html自定义Python插件的setup.pyfromdistu......
  • Vue路由跳转后,页面和滚动条不在最顶部。
    在路由跳转后,页面以及滚动条保持在当前位置,没用回到最顶部怎么办?解决方法如下:在main.js中加入以下代码router.afterEach((to,from,next)=>{window.scrollTo(0,0)})......
  • Vue3 +elementUI + wangEditor 富文本编辑器
    哎呀,一个富文本编辑器折腾了我好久啊,刚开始找的就是wangEditor,但是上传图片的调接口,我就寻思找个简单的,后来换了quill可以不调接口上传图片,但是v-model绑定不了,而且一直......
  • Vue3动态路由传参;获取动态路由传入参数;
           路由文件,配置动态路由( /:  -后面的tabsItem为参数名称,参数名后的?号 -使参数可以为空而不报错  )1{2//关于我们3......
  • idea插件收藏
    EasyJavadoc自动注释CR过很多同学的代码,经常会遇到类上或者方法上没有注释的情况,其中一个原因是写注释比较麻烦。那么有什么提效的方法吗?EasyJavadoc就是可以很好......
  • vue3 + pinia实现简单购物车功能
    这个小例子是学习vue3与pinia状态管理工具时写的一个简单的购物车功能,它实现了从模拟接口(node.js的json-server提供)读取商品数据,到添加商品到购物车和购物车中删除商品......
  • vue3 + qiankun(微前端)
    主服务路由配置constrouter=createRouter({history:createWebHistory(),routes:[{path:`/jupiter:page*`,name:`jupiter`,compo......
  • vite vue3 规范化与Git Hooks
    在《JS模块化》系列开篇中,曾提到前端技术的发展不断融入很多后端思想,形成前端的“四个现代化”:工程化、模块化、规范化、流程化。在该系列文章中已详细介绍了模块化的发......
  • 在vscode中使用博客园插件
    在vscode中使用博客园插件自动上传本地博客(1)前言好记性不如烂笔头。千古流传的经验之谈,绝不是浪得虚名。记忆是最最会骗人的东西,又是最容易被遗忘的东西。过河拆桥,......
  • Tampermonkey 插件
    一简介​每次使用搜索引擎进行内容检索的时候,经常会搜索到一些带有广告的页面,而这些内容往往不是我们所需要的,这些内容统称为干扰项,那如何在使用搜索引擎内容检索时排除......