博客
关于我
vue通过better-scroll 封装自定义的下拉刷新组件
阅读量:358 次
发布时间:2019-03-05

本文共 1633 字,大约阅读时间需要 5 分钟。

一、需求问题

在vue的项目中,我们可能也经常会遇到这样的需求。当在页面当中,对页面进行下拉刷新,重新请求数据,加载新的内容。针对这个,我们可以使用better-scroll,在此基础上进行封装下拉刷新组件,实现多个页面都可以使用这个组件,下拉刷新,得到复用。

二、需求分析

  1. 在components文件夹中,建立Scroller文件夹,里面建立index.vue文件,作为Scroller组件。这个下拉刷新组件在页面的多个位置中都可能会用的到,可以全局注册组件。在项目的main.js文件中写以下的代码配置,进行全局注册
import Scroller from '@/components/Scroller'//  全局注册 Scroller 组件Vue.component('Scroller', Scroller);
  1. Scroller组件中,引入better-scroll,在props中,写handleToScrollhandleToTouchEnd这两个属性,在后面组件传值的时候需要使用。在mounted()钩子函数中,通过 new BScroll创建对象,传入DOM对象和配置参数项。通过scroll.on进行绑定scrolltouchEnd事件,在后面通过pos参数写回调函数,分别调用handleToScrollhandleToTouchEnd

  2. 在需要用到的页面中,就可以直接写Scroller组件,在组件内部进行绑定属性,handleToScrollhandleToTouchEnd这两个属性,它们也是函数。在methods中,写handleToScrollhandleToTouchEnd 这两个函数,参数为pos,通过pos.y进行判断位置,然后执行相应的操作。同时在data中,写pullDownMsg参数为空,这个会进行动态的显示提示消息,赋予不同的值。

三、需求实现

  1. main.js
import Vue from 'vue'import App from './App.vue'import router from './router'import store from './store'import axios from 'axios'Vue.prototype.axios = axios;Vue.filter('setWH', (url, arg) => {     return url.replace(/w\.h/, arg);});Vue.config.productionTip = false;import Scroller from '@/components/Scroller'//  全局注册 Scroller 组件Vue.component('Scroller', Scroller);new Vue({     router,  store,  render: h => h(App)}).$mount('#app')
  1. Scroll文件夹下的index.vue,封装组件
  1. movie下的index.vue, 路由页面使用组件

转载地址:http://cupg.baihongyu.com/

你可能感兴趣的文章
如何提升员工体验 助力企业业务增长?这个棘手的问题终于被解决了!
查看>>
2020 AI 产业图谱启动,勾勒中国 AI 技术与行业生态
查看>>
Netty4服务端入门代码示例
查看>>
Spring源码:prepareBeanFactory(beanFactory);方法
查看>>
AcWing 828. 模拟栈
查看>>
(20200328已解决)从docker容器内复制文件到宿主机
查看>>
理解Docker ulimit参数
查看>>
OpenAI Gym简介及初级实例
查看>>
int 转 CString
查看>>
Edit编辑框自动换行与长度
查看>>
Java面向对象
查看>>
JAVA带标签的break和continue
查看>>
Java获取线程基本信息的方法
查看>>
vue源码分析(MVVM篇)
查看>>
设计模式之组合模式
查看>>
(Python学习笔记):字典
查看>>
(C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
查看>>
leetcode 14 最长公共前缀
查看>>
做做Java
查看>>
C++并发与多线程(一)
查看>>