一个项目中存在很多这种情况:父组件(页面)中的子组件需要做下拉加载更多的需求,但是这个下拉到底部的动作只能通过监控页面(父组件)来完成

这就需要父子组件之间的通信,代码如下:

1. 建立一个用于父子组件通信的工具,bus.js

import Vue from 'vue'
let bus = new Vue() export default bus

2. 在父组件中监听页面的下拉,并用bus将下拉到底部时这个信号发给子组件,此处bus.js放在lib文件夹下,.container为页面最外层的class

import Bus from '@/lib/bus'
methods: {
scrollListener () {
if (window.scrollTimer) clearTimeout(window.scrollTimer)
window.scrollTimer = setTimeout(() => {
let el = document.querySelector('.container')
let innerDiv = document.querySelector('.container>div')
if (el.scrollTop + window.innerHeight >= innerDiv.clientHeight) {
// 发送拉到底部的信号给子组件
Bus.$emit('loadMore')
}
}, 250)
}
mounted () {
document.querySelector('.container').addEventListener('scroll', this.scrollListener)
}

3. 在子组件中接受该信号,并调用加载数据的方法

created () {
Bus.$off('loadMore')
Bus.$on('loadMore', () => {
// 在此调用加载更多数据的方法
})
}

关于Vue中页面(父组件)下拉,页面中的子组件加载更多数据的实现方法的更多相关文章

  1. XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView

    介绍: 一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊的adater. ...

  2. juery下拉刷新,ajax请求,div加载更多元素(一)

    ;//设置当前页数 var flag=true; //滑动加载 $(function(){ var winH = $(window).height(); //页面可视区域高度 $(window).sc ...

  3. ASP.NET仿新浪微博下拉加载更多数据瀑布流效果

    闲来无事,琢磨着写点东西.貌似页面下拉加载数据,瀑布流的效果很火,各个网站都能见到各式各样的展示效果,原理大同小异.于是乎,决定自己写一写这个效果,希望能给比我还菜的菜鸟们一点参考价值. 在开始之前, ...

  4. vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

    vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...

  5. 笔记-VUE滚动加载更多数据

    来源:https://blog.csdn.net/qq_17281881/article/details/87342403 VUE滚动加载更多数据 data() { return { loading: ...

  6. 微信小程序 - (下拉)加载更多数据

    注意和后端配合就行了,前端也只能把数据拼接起来! 无论是下拉加载还是加载更多,一样的道理! 注意首次加载传递参数 注意每次加载数据数 wxml <view class='table-rank'& ...

  7. html ajax请求 php 下拉 加载更多数据 (也可点击按钮加载更多)

    <input type="hidden" class="total_num" id="total" value="{$tot ...

  8. h5 实现页面上拉加载更多数据

    您好,您的上拉加载更多的代码来喽: html:(style部分:html部分:js部分--js部分主要就是监控上拉,调接口) //上拉加载更多css <style> .wait-loadi ...

  9. Vue.js中滚动条加载更多数据

    本文章参考:http://www.cnblogs.com/ssrsblogs/p/6108423.html 分析:1.需要判断滚动条是否到底部: 需要用到DOM的三个属性值,即scrollTop.cl ...

随机推荐

  1. python小白之np功能快速查

    np一些用法 np.a np.array([1,2,3],dtype=int)  #建立一个一维数组, np.array([[1,2,3],[2,3,4]])  #建立一个二维数组. np.arang ...

  2. osg 3ds模型加载与操作

    QString item1 = QString::fromStdString(groupParam->getChild(k)->getName()); QStandardItem* ite ...

  3. Linux -- 如何减少IO过程中的CPU copy

    四种I/O方式的对比 1. Buffered I/O read(file, tmp_buf, len); write(socket, tmp_buf, len); 上下文切换:4次 CPU copy: ...

  4. Node.js event loop 和 JS 浏览器环境下的事件循环的区别

    Node.js  event loop 和 JS 浏览器环境下的事件循环的区别: 1.线程与进程: JS 是单线程执行的,指的是一个进程里只有一个主线程,那到底什么是线程?什么是进程? 进程是 CPU ...

  5. (十四)用session和过滤器方法检验用户是否登录

    一.session方法 1.1 编写登录页面文件(index.html) <!doctype html> <html> <head> <title>测试 ...

  6. 执行spark-shell报错:

    执行spark-shell报错: [ERROR] Terminal initialization failed; falling back to unsupportedjava.lang.NoClas ...

  7. react 做的简易todolist

    首先要有一定的react的基础,里面的一些不做解释(包括项目文件的用法及作用)   ### 1. 先安装react的插件 npm  install  create-react-app  -g      ...

  8. 最新 满帮java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.满帮等10家互联网公司的校招Offer,因为某些自身原因最终选择了满帮.6.7月主要是做系统复习.项目复盘.LeetCode ...

  9. CenOS 7 安装Redis

    1.Redis介绍 Redis是一个使用ANSI C编写的开源.支持网络.基于内存.可选持久性的键值对存储数据库.从2015年6月开始,Redis的开发由Redis Labs赞助,而2013年5月至2 ...

  10. RAID(独立磁盘冗余阵列)

    Raid ​ RAID 独立磁盘冗余阵列,在本科学习时候学习过,记不清是组成原理还是操作系统,当时理解的不太清楚,现在研究生期间做存储相关项目,涉及到了Raid,于是查各种博客,为了以后便于后期查阅, ...