欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue.js整合vux中的上拉加載下拉刷新實例教程

 更新時間:2018年01月09日 10:01:22   作者:朋也  
這篇文章主要給大家介紹了關(guān)于vue.js整合vux中上拉加載下拉刷新的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

Vux 是基于 Vue 和 Weui 開發(fā)的手機端頁面 UI 組件庫,開發(fā)初衷是滿足公司的微信端表單需求,因為第三方的調(diào)查問卷表單系統(tǒng)在手機上實在比較丑(還是 PC 那一套樣式適配了大小而已)。于是用 vue 重構(gòu)了表單組件,后來一發(fā)不可收拾把其他常用組件也一并開發(fā)了。

相比于 React 還是更喜歡用 Vue ,除了目前社區(qū)組件不多,周邊構(gòu)建工具還是比較完善的(作者也特別勤奮)。

下面話不多說了,來一看看詳細(xì)的介紹吧。

先上圖


創(chuàng)建項目

使用vue-cli 創(chuàng)建一個vue項目

安裝vux,可以參考:vux快速入門

配置

官方文檔地址

打開后會看到一段話

該組件已經(jīng)不再維護(hù),也不建議使用,大部分情況下也不需要用到該組件。 建議使用第三方相關(guān)組件,相關(guān) issue 將不會處理。

不知道作者為啥不維護(hù)了,明明需求挺多的

我沒有用demo里的 LoadMore 組件,用的是 Scroller里自帶的 use-pullup, use-pulldown 下面是我的配置

<!-- 
 height: 我用到x-header了,文檔里說header高是48px,所以這里設(shè)置成-48
 -->
<scroller use-pullup :pullup-config="pullupDefaultConfig" @on-pullup-loading="loadMore"
  use-pulldown :pulldown-config="pulldownDefaultConfig" @on-pulldown-loading="refresh"
  lock-x ref="scrollerBottom" height="-48">
</scroller>
<script>
 import {Scroller, XHeader} from 'vux'
 const pulldownDefaultConfig = {
 content: '下拉刷新',
 height: 40,
 autoRefresh: false,
 downContent: '下拉刷新',
 upContent: '釋放后刷新',
 loadingContent: '正在刷新...',
 clsPrefix: 'xs-plugin-pulldown-'
 }
 const pullupDefaultConfig = {
 content: '上拉加載更多',
 pullUpHeight: 60,
 height: 40,
 autoRefresh: false,
 downContent: '釋放后加載',
 upContent: '上拉加載更多',
 loadingContent: '加載中...',
 clsPrefix: 'xs-plugin-pullup-'
 }
 export default {
 components: {
 XHeader,
 Scroller
 },
 mounted() {
 this.$nextTick(() => {
 this.$refs.scrollerBottom.reset({top: 0})
 })
 },
 data() {
 return {
 list: [],
 pullupDefaultConfig: pullupDefaultConfig,
 pulldownDefaultConfig: pulldownDefaultConfig
 }
 },
 methods: {
 refresh() { 
 },
 loadMore() {
 
 }
 }
 }
</script>

請求接口遍歷數(shù)據(jù)

接口服務(wù)用的是mock.js生成的數(shù)據(jù),可以看一下這篇文章:使用mock.js隨機數(shù)據(jù)和使用express輸出json接口

安裝 axios

yarn add axios
//...
 methods: {
 fetchData(cb) {
  axios.get('http://localhost:3000/').then(response => {
  this.$nextTick(() => {
   this.$refs.scrollerBottom.reset()
  })
  cb(response.data)
  })
 }
 }
//...

完善refresh,loadMore方法

//...
 methods: {
 refresh() {
  this.fetchData(data => {
  this.list = data.list
  this.$refs.scrollerBottom.enablePullup()
  this.$refs.scrollerBottom.donePulldown()
  })
 },
 loadMore() {
  this.fetchData(data => {
  if (this.list.length >= 10) {
   this.$refs.scrollerBottom.disablePullup()
  }
  this.list = this.list.concat(data.list)
  this.$refs.scrollerBottom.donePullup()
  })
 }
 }
//...

在組件加載的時候調(diào)用一下 loadMore 方法

//...
 mounted() {
 this.$nextTick(() => {
  this.$refs.scrollerBottom.reset({top: 0})
 })
 this.loadMore()
 }
//...

最后把html部分補全

<scroller>
 <div style="padding: 10px 0">
 <div class="box" v-for="(item, index) in list" :key="index">
  <p class="list"></p>
 </div>
 </div>
</scroller>

完整代碼

<template>
 <div>
 <x-header :left-options="{'showBack': false}">上拉加載,下拉刷新</x-header>
 <scroller use-pullup :pullup-config="pullupDefaultConfig" @on-pullup-loading="loadMore"
    use-pulldown :pulldown-config="pulldownDefaultConfig" @on-pulldown-loading="refresh"
    lock-x ref="scrollerBottom" height="-48">
  <div style="padding: 10px 0">
  <div class="box" v-for="(item, index) in list" :key="index">
   <p class="list"></p>
  </div>
  </div>
 </scroller>
 </div>
</template>
<script>
 import {Scroller, XHeader} from 'vux'
 import axios from 'axios'

 const pulldownDefaultConfig = {
 content: '下拉刷新',
 height: 40,
 autoRefresh: false,
 downContent: '下拉刷新',
 upContent: '釋放后刷新',
 loadingContent: '正在刷新...',
 clsPrefix: 'xs-plugin-pulldown-'
 }
 const pullupDefaultConfig = {
 content: '上拉加載更多',
 pullUpHeight: 60,
 height: 40,
 autoRefresh: false,
 downContent: '釋放后加載',
 upContent: '上拉加載更多',
 loadingContent: '加載中...',
 clsPrefix: 'xs-plugin-pullup-'
 }
 export default {
 components: {
  XHeader,
  Scroller
 },
 mounted() {
  this.$nextTick(() => {
  this.$refs.scrollerBottom.reset({top: 0})
  })
  this.loadMore()
 },
 data() {
  return {
  list: [],
  pullupDefaultConfig: pullupDefaultConfig,
  pulldownDefaultConfig: pulldownDefaultConfig
  }
 },
 methods: {
  fetchData(cb) {
  axios.get('http://localhost:3000/').then(response => {
   this.$nextTick(() => {
   this.$refs.scrollerBottom.reset()
   })
   cb(response.data)
  })
  },
  refresh() {
  this.fetchData(data => {
   this.list = data.list
   this.$refs.scrollerBottom.enablePullup()
   this.$refs.scrollerBottom.donePulldown()
  })
  },
  loadMore() {
  this.fetchData(data => {
   if (this.list.length >= 10) {
   this.$refs.scrollerBottom.disablePullup()
   }
   this.list = this.list.concat(data.list)
   this.$refs.scrollerBottom.donePullup()
  })
  }
 }
 }
</script>
<style lang="less">
 .box {
 padding: 5px 10px 5px 10px;
 &:first-child {
  padding: 0 10px 5px 10px;
 }
 &:last-child {
  padding: 5px 10px 0 10px;
 }
 }
 .list {
 background-color: #fff;
 border-radius: 4px;
 border: 1px solid #f0f0f0;
 padding: 30px;
 }
 .xs-plugin-pulldown-container {
 line-height: 40px;
 }
 .xs-plugin-pullup-container {
 line-height: 40px;
 }
</style>

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • vue3中使用sse最佳實踐,封裝工具詳解

    vue3中使用sse最佳實踐,封裝工具詳解

    這篇文章主要介紹了vue3中使用sse最佳實踐,封裝工具,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 淺談vue中.vue文件解析流程

    淺談vue中.vue文件解析流程

    這篇文章主要介紹了淺談vue中.vue文件解析流程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • vite項目無法使用zangodb包裝器的解決方案

    vite項目無法使用zangodb包裝器的解決方案

    vite作為新一代工具鏈,具有很多便利之處,配置也非常簡單,它很好地整合了Rollup和其他復(fù)雜的構(gòu)建項,并提供了多種方向的典型腳手架模板,深受大家喜愛,本文給大家介紹了如何解決vite項目無法使用zangodb包裝器的問題,需要的朋友可以參考下
    2023-10-10
  • vue3中setup-script的應(yīng)用實例

    vue3中setup-script的應(yīng)用實例

    script-setup是一個比較有爭議的新特性,作為 setup 函數(shù)的語法糖,褒貶不一,不過經(jīng)歷了幾次迭代之后,目前在體驗上來說,感受還是非常棒的,這篇文章主要給大家介紹了關(guān)于vue3中setup-script應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Vue.js實現(xiàn)數(shù)據(jù)雙向綁定的代碼示例

    Vue.js實現(xiàn)數(shù)據(jù)雙向綁定的代碼示例

    在我們使用vue的時候,當(dāng)數(shù)據(jù)發(fā)生了改變,界面也會跟著更新,但這并不是理所當(dāng)然的,我們修改數(shù)據(jù)的時候vue是如何監(jiān)聽數(shù)據(jù)的改變以及當(dāng)數(shù)據(jù)發(fā)生改變的時候vue如何讓界面刷新的,所以本文就給大家講講Vue.js 數(shù)據(jù)雙向綁定是如何實現(xiàn)的
    2023-07-07
  • Vue-CLI 3.X 部署項目至生產(chǎn)服務(wù)器的方法

    Vue-CLI 3.X 部署項目至生產(chǎn)服務(wù)器的方法

    這篇文章主要介紹了Vue-CLI 3.X 部署項目至生產(chǎn)服務(wù)器的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 詳解如何創(chuàng)建基于vite的vue項目

    詳解如何創(chuàng)建基于vite的vue項目

    vite 這個是尤大開發(fā)的新工具,目的是以后替代webpack,下面這篇文章主要給大家介紹了關(guān)于如何創(chuàng)建基于vite的vue項目的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 詳解vue+nodejs獲取多個表數(shù)據(jù)的方法

    詳解vue+nodejs獲取多個表數(shù)據(jù)的方法

    這篇文章主要為大家介紹了vue+nodejs獲取多個表數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • vue Watch和Computed的使用總結(jié)

    vue Watch和Computed的使用總結(jié)

    本文主要介紹Vue.js中監(jiān)聽器和計算屬性的相關(guān)知識點,包括對普通屬性的監(jiān)聽、對對象的監(jiān)聽、對數(shù)組的監(jiān)聽,以及計算屬性的Set方法,計算屬性與監(jiān)聽器的區(qū)別等等
    2021-05-05
  • Vue3使用transition實現(xiàn)組件切換的過渡效果

    Vue3使用transition實現(xiàn)組件切換的過渡效果

    <Transition> 是一個內(nèi)置組件,這意味著它在任意別的組件中都可以被使用,無需注冊,它可以將進(jìn)入和離開動畫應(yīng)用到通過默認(rèn)插槽傳遞給它的元素或組件上,本文介紹了Vue3使用transition實現(xiàn)組件切換的過渡效果,需要的朋友可以參考下
    2024-09-09

最新評論