首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vuejs中使用axios时如何实现滑动滚动条来动态加载列表数据

前言 在vuejs中,我们经常使用axios来请求数据,但是有时候,我们请求的数据量很大,那么我们如何实现滑动滚动条来加载数据呢?...实现思路 首先,我们需要在vuejs中引入axios 然后,我们需要从vue中,引入onMounted,onUnmounted生命周期钩子函数 然后,我们需要在onMounted函数中,进行监听 而在onUnmounted...是滚动条可视区域的高度 当滚动条到达底部,并且距离底部小于10px时,加载数据,也就是请求axios数据,页码++,重新加载数据函数 为了防止用户频繁触发下拉滑动滚动条,往往需要添加一个函数防抖,在指定的时间内...const clientHeight = document.documentElement.clientHeight || document.body.clientHeight; // 当滚动条到达底部...page.value*pagesize.value >= data.length) { alert("没有更多数据了") } 总结 其实这个功能很简单,但是写起来还是有点麻烦,因为涉及到异步请求

50250
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    IntersectionObserver交叉观察器

    交叉观察器 IntersectionObserver 可以观察元素是否可见,由于目标元素与视口产生一个交叉区,我们可以观察到目标元素的可见区域,通常称这个API为交叉观察器 前段时间内部系统业务需要,...setup lang="ts"> // This starter template is using Vue 3 SFCs // Check out https://v3.vuejs.org...在传统上,我们实现上拉加载,我们会监听滚动条到底部的距离,我们计算滚动条距离顶部位置、浏览器可视区域的高度、body的高度,监听滚动事件,判断scrollTop + clientHeight > bodyScrollHeight...> div v-else>没有数据啦div> 我们直接在元素上绑定自定义的指令v-scroll-table="{cb: handleMore,infiniteScrollDisable:...display: flex; align-items: center; justify-content: center; } 打开页面,我们可以看到 点击加载操作就会加载更多,当滚动到底部时

    92920

    vue自定义指令和IntersectionObserver接口,监听元素进入父元素视窗内的实际应用

    想到的方案: 直接监听滚动高度,根据滚动距离来计算是否展现在页面内 借助第三方插件,找到一个 vue-check-view,不过只能监听整个 window 视窗的页面滚动,如果想监听某个元素的内部滚动是否可见没法实现...刚开始直接用的 vue-check-view,但是因为项目是用 electron 开发的桌面应用,布局上需要在列表父盒子上实现滚动。...一般涉及 dom 的操作,我们都可以通过自定义指令来实现,比如点击文本直接复制到粘贴板、按钮权限的判断(无权限时隐藏或禁用)...这一点一般通过指令钩子函数的第一个参数 el 就能实现。...v-viewport="handleViewport(index)" > 我是第 {{ index }} 个 div> div> vuejs.org/v2/guide/custom-directive.html MDN IntersectionObserver 接口:https://developer.mozilla.org

    54240

    Interection Observer如何观察变化

    我在今年早些时候有幸向达拉斯VueJS聚会介绍了VueJS过渡组件,我在CSS-Tricks的第一篇文章就是以此为基础的。...time属性提供从首次创建观察者到触发此交集改变的时间(以毫秒为单位)。通过这种方式,你可以跟踪观看者遇到特定目标所花费的时间。即使稍后将目标再次滚动到视图中,此属性也会提供新的时间。...首先,我创建了一个样本HTML文件,该文件包含一百个设置了高度的div,以此创建一个长滚动页面。...把页面放在静态服务器上,然后我用Puppeteer加载了HTML文件,启动了跟踪,让页面以预设的增量向下滚动到底部,一旦到达底部,就停止了跟踪,最后保存跟踪的结果。...事件的回调函数仅更新输出中的div。每当目标触发相交变化并且不与根相交时,我们会将输出设置回零。 这个实例利用了Intersection Observer和滚动事件的优点。

    2.6K20

    Vue 踩过的坑

    clearInterval(this.intervalId); }, 4.vue 滚动行为用法,进入路由需要滚动到浏览器底部、头部等等 使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置...路由设置如下:(详情猛戳:https://router.vuejs.org/zh-cn/advanced/scroll-behavior.html) const router = new VueRouter...详情猛戳:https://router.vuejs.org/zh-cn/advanced/navigation-guards.html 6.v-once 只渲染元素和组件一次,优化更新渲染性能 v-once...这个指令相信大家用的很少,不过个人感觉还是挺实用的!...这个就不举例子了,直接猛戳这:v-once(https://cn.vuejs.org/v2/api/#v-once) 7. vue本地代理配置 解决跨域问题,仅限于开发环境 这个本地代理用来解决开发环境下的跨域问题

    1.5K20

    邂逅Vue.js

    /js/vue.js 生产环境 https://vuejs.org/js/vue.min.js 方式三:NPM安装 后续通过webpack和CLI的使用,我们使用该方式。...浏览器执行代码的流程: 执行到10~13行代码显然出对应的HTML 执行第16行代码创建Vue实例,并且对原HTML进行解析和修改。 4.Vue中的MVVM ?...一方面它实现了Data Binding,也就是数据绑定,将Model的改变实时的反应到View中 另一方面它实现了DOM Listener,也就是DOM监听,当DOM发生一些事件(点击、滚动、touch...https://cn.vuejs.org/v2/api/#%E9%80%89%E9%A1%B9-%E6%95%B0%E6%8D%AE 这里我们先来看我们案例中遇到的参数。...methods: 类型:{ [key: string]: Function } 作用:定义属于Vue的一些方法,可以在其他地方调用,也可以在指令中使用。

    1.7K20

    前后端通吃,vue大全Mark一下

    我们会定期同步OpenDigg上的项目到这里,也欢迎各位提交项目给我们。 如果收录的项目有错误,可以通过issue反馈给我们。这里的项目Star数不是实时更新的,一般是一周更新一次。...的无限滚动指令 buefy ★755 - 响应式UI组件轻量级库 vue-beauty ★749 - 由vue和ant design创建的优美UI组件 vue-waterfall ★737 - Vue.js...的无限滚动插件 vue-swipe ★481 - VueJS触摸滑块 vue-music-player ★451 - Vuejs写一个音乐播放器 vue-scroller ★444 - Vonic UI...★174 - 滚动到元素的VueJS指令 vue-svg-icon ★157 - vue2的可变彩色svg图标方案 vue-focus ★148 - 可重用VueJS组件的焦点指令 meteor-vue...★84 - VueJS的剪贴板 vue-kindergarten ★83 - 将kindergarten集成到VueJS应用 vue-events ★83 - 简化事件的VueJS插件 vue-notifications

    5.8K20

    前端基础-Vue.js模板语法(指令)

    第3章 模板语法-指令 指令 (Directives) 是带有 v- 前缀的特殊 特性 相当于自定义html属性。...指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM;参考 手册 、 API div id="div" > div id="div">div> 我们通过 vue 对象修改数据可以直接影响到 DOM 元素,但是,如果直接修改 DOM 元素,...却不会影响到 vue 对象的数据;我们把这种现象称为 单向数据绑定 ; 3.3.2 双向数据绑定 v-model https://cn.vuejs.org/v2/api/#v-model div id...指令展示表单数据,此时就完成了 双向数据绑定 ; 不管 DOM 元素还是 vue 对象,数据的改变都会影响到另一个; 注意:数据绑定是目前所有MVVM前端框架的核心特性;甚至可以说,没有数据绑定就不能算是框架

    8.9K30

    vue常用组件库_vue内置组件

    和element的简单的管理员模板 vue-syntax-highlight:Sublime Text语法高亮 vue-infinite-scroll:VueJS的无限滚动指令 Vue.Draggable...vue-gesture:VueJS的手势事件插件 http-vue-loader:从html及js环境加载vue文件 vue-qart:用于qartjs的Vue2指令 vuemit:处理VueJS...– VueJS的无限滚动插件 vue-virtual-scroller – 带任意数目数据的顺畅的滚动 vue-infinite-scroll – VueJS的无限滚动指令 vue-scrollbar...– 最简单的滚动区域组件 vue-scroll – vue滚动 vue-pull-to-refresh – Vue2的上拉下拉 mint-loadmore – VueJS的双向下拉刷新组件 vue-smoothscroll...事件 vue-cordova – Cordova的VueJS插件 vue-qart – 用于qartjs的Vue2指令 vue-websocket – VueJS的Websocket插件 vue-gesture

    8.1K20

    2019-08-09 满屏切换vue项目中使用 vue-fullpage.js

    // scrollingSpeed: 700, // //定义锚链接,用户可以快速打开定位到某一页面;不需要加"#",不要和页面中任意的id和name相同 //...// //滚动到最顶部后是否连续滚动到底部 // loopTop: true, // //滚动到最底部后是否连续滚动到顶部 // loopBottom: true...,当我们要设置一个固定在顶部的菜单、导航、元素等时使用 // paddingTop: "100px", // //设置每个section底部的padding,当我们要设置一个固定在底部的菜单...// //滚动到最顶部后是否连续滚动到底部 // loopTop: true, // //滚动到最底部后是否连续滚动到顶部 // loopBottom: true...,当我们要设置一个固定在顶部的菜单、导航、元素等时使用 // paddingTop: "100px", // //设置每个section底部的padding,当我们要设置一个固定在底部的菜单

    11.9K30

    Web前端实现锚点功能的三种方式

    默认为 "start",元素顶部将滚动到视窗顶部; 取值 "end",元素底部将和视窗底部对齐; 取值 "center",元素中线将和视窗中间对齐; 取值 "nearest",元素将就近对齐。...即,若页面向上滚动,则顶部对齐;若页面向下滚动,则底部对齐。 inline,定义水平方向的对齐, "start", "center", "end", 或 "nearest"之一。...以 HTML 根节点为滚动容器为例: div id="root">div> 当需要跳转时可调用 const {scrollTop: domScrollTop, scrollLeft: domScrollLeft...div#root 元素顶部到与视窗顶部对齐 window.scrollTo(domScrollLeft, domScrollTop + targetOffsetTop); window.scrollBy...(domScrollLeft, targetOffsetTop); 同理,滚动元素到与视窗底部或与视窗中间对齐亦可取参计算。

    3.7K31
    领券