vue通过better-scroll 封装自定义的下拉刷新组件
发布日期:2021-05-08 01:24:11 浏览次数:8 分类:精选文章

本文共 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, 路由页面使用组件
上一篇:android解决:使用多线程和Handler同步更新UI
下一篇:android:使用audiotrack 类播放wav文件

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月05日 22时02分56秒