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

vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā))

 更新時(shí)間:2020年11月11日 09:41:42   作者:賦予不予  
這篇文章主要介紹了vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧

前幾天做的項(xiàng)目里有用到下拉刷新。使用了vant-ui里的

List 列表

瀑布流滾動(dòng)加載,用于控制長(zhǎng)列表的展示

先說(shuō)使用

1.用npm下載該模塊包

npm i vant -S

2.引入組件

官方提供了三種方法。(我使用了第三種,全局引入方法)

方式一. 使用 babel-plugin-import (推薦)

babel-plugin-import 是一款 babel 插件,它會(huì)在編譯過程中將 import 的寫法自動(dòng)轉(zhuǎn)換為按需引入的方式

# 安裝 babel-plugin-import 插件
npm i babel-plugin-import -D
// .babelrc 中配置
// 注意:webpack 1 無(wú)需設(shè)置 libraryDirectory
{
 "plugins": [
 ["import", {
  "libraryName": "vant",
  "libraryDirectory": "es",
  "style": true
 }]
 ]
}
 
// 對(duì)于使用 babel7 的用戶,可以在 babel.config.js 中配置
module.exports = {
 plugins: [
 ['import', {
  libraryName: 'vant',
  libraryDirectory: 'es',
  style: true
 }, 'vant']
 ]
};

接著你可以在代碼中直接引入 Vant 組件,插件會(huì)自動(dòng)將代碼轉(zhuǎn)化為方式二中的按需引入形式

import { Button, Cell } from 'vant';

如果你在使用 TypeScript,可以使用 ts-import-plugin 實(shí)現(xiàn)按需引入

方式二. 按需引入組件

在不使用插件的情況下,可以手動(dòng)引入需要的組件

import Button from 'vant/lib/button';

import 'vant/lib/button/style';

方式三. 導(dǎo)入所有組件(在main.js中引入)

import Vue from 'vue';
import Vant from 'vant';
import 'vant/lib/index.css'; 
Vue.use(Vant);

注意:配置 babel-plugin-import 插件后將不允許導(dǎo)入所有組件

引入成功后使用

  <van-list
   v-model="loading"
   :finished="finished"
   @load="onLoad">
   <v-bookOrder 
    :list="list" 
    :type="type" 
    :idType="idType"
    @reflush = "submitHandler">
   </v-bookOrder>
  </van-list>
  <!-- //空頁(yè)面 -->
  <div class="empty" v-if="list.length==0&&!loading">
   <img src="../../assets/icon_kong_dingdan@2x.png"/>
   <div>暫無(wú)預(yù)約~</div>
  </div>

loading為false是加載中,finished為true是已結(jié)束狀態(tài),onLoad是執(zhí)行函數(shù)(分頁(yè)添加list的值),里面的v-bookOrder是自己寫的組件。

初始化loading為false,finished為false。

一切ok。

但項(xiàng)目里,加載的list,頁(yè)面上有個(gè)切換的tab,實(shí)現(xiàn)切換不同的類型,加載不同的list的功能。vant-ui的list就有個(gè)bug,當(dāng)切換tab的時(shí)候,它的onload沒方法自動(dòng)觸發(fā)。然而在當(dāng)前標(biāo)簽頁(yè),如果列表已經(jīng)加載完畢再去切換,onload就可以實(shí)現(xiàn)自動(dòng)觸發(fā)。(很多人給官方提這個(gè)問題,但是官方就是不修改)。

下面給出解決方案。

在切換tab后執(zhí)行初始化函數(shù)

initialization(){
   this.list = [];
   this.page = 1;
   this.loading = true;//下拉加載中
   this.finished = false;//下拉結(jié)束
   if(this.loading){
    this.onLoad();
   }
  },

list清空,page=1表示第一頁(yè),將loading設(shè)置為true,一定觸發(fā)一次onload,

onLoad() {
   setTimeout(async () => {
    let res = await this.$ajax.get({
     limit:this.pageSize,
     page:this.page,
     keyword:this.value1
    },'/order/businesslist/'+this.type,
    res=>{
     if(res.code==0){
      this.list = this.list.concat(res.data.list)
      this.loading = false;
      if(this.list.length >= res.data.total){
       this.finished = true;
      }
      this.page++;
     }
    else{
     this.$dialog.toast({
      mes: res.msg,
      timeout: 1500
     });
    }},err=>{
     this.$dialog.toast({
      mes: "出錯(cuò)了~",
      timeout: 1500
     });
    })  
   }, 500);
  },

在第一次onload的過程中將loading設(shè)置為false,則觸發(fā)第二次loading,當(dāng)執(zhí)行到滿足結(jié)束條件的時(shí)候,finished為true,結(jié)束加載。bug就解決啦~

補(bǔ)充知識(shí):vant 框架van-list重復(fù)觸發(fā)加載函數(shù)的問題

在使用van-list組件的時(shí)候,為了隱藏ios手機(jī)右側(cè)的滾動(dòng)條,我給了組件一個(gè)overflow-x:hidden屬性,官方說(shuō)這個(gè)屬性會(huì)導(dǎo)致重復(fù)觸發(fā)van-list的加載,

但是我去掉這個(gè)屬性仍然不管用,而且這個(gè)屬性又是必須保留的,最后我又給了他一個(gè)固定的高度,就不會(huì)重復(fù)觸發(fā)加載了,注意一定要是固定的高度,

設(shè)置height:100%仍然是不管用的,記錄一下這個(gè)問題。

以上這篇vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā))就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue中構(gòu)造數(shù)組數(shù)據(jù)之map和forEach方法實(shí)現(xiàn)

    Vue中構(gòu)造數(shù)組數(shù)據(jù)之map和forEach方法實(shí)現(xiàn)

    數(shù)組操作是前端最重要的數(shù)據(jù)操作,構(gòu)造數(shù)組數(shù)據(jù),又是數(shù)組操作中很常見的,本文將梳理下map和forEach方法在Vue項(xiàng)目中的使用,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • element-ui 限制日期選擇的方法(datepicker)

    element-ui 限制日期選擇的方法(datepicker)

    本篇文章主要介紹了element-ui 限制日期選擇的方法(datepicker),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-05-05
  • vue中實(shí)現(xiàn)Monaco Editor自定義提示功能

    vue中實(shí)現(xiàn)Monaco Editor自定義提示功能

    最近小編接到一個(gè)項(xiàng)目,需要在瀏覽器的ide中支持自定義提示功能,接下來(lái)通過本文給大家介紹在vue中實(shí)現(xiàn)Monaco Editor自定義提示功能,需要的朋友可以參考下
    2019-07-07
  • vue3不同環(huán)境下實(shí)現(xiàn)配置代理

    vue3不同環(huán)境下實(shí)現(xiàn)配置代理

    這篇文章主要介紹了vue3不同環(huán)境下實(shí)現(xiàn)配置代理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue項(xiàng)目安裝less和less-loader的詳細(xì)步驟

    Vue項(xiàng)目安裝less和less-loader的詳細(xì)步驟

    這篇文章主要介紹了Vue項(xiàng)目安裝less和less-loader的詳細(xì)步驟,本文分步驟結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • vue中的v-if和v-show的區(qū)別詳解

    vue中的v-if和v-show的區(qū)別詳解

    這篇文章主要介紹了vue中的v-if和v-show的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue使用echarts畫組織結(jié)構(gòu)圖

    vue使用echarts畫組織結(jié)構(gòu)圖

    這篇文章主要介紹了vue使用echarts畫組織結(jié)構(gòu)圖的示例,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-02-02
  • vue + canvas實(shí)現(xiàn)涂鴉面板的示例代碼

    vue + canvas實(shí)現(xiàn)涂鴉面板的示例代碼

    這篇文章主要給大家介紹了vue + canvas實(shí)現(xiàn)涂鴉面板的示例,文章通過代碼示例介紹的非常詳細(xì),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2023-08-08
  • vue echarts實(shí)現(xiàn)橫向柱狀圖

    vue echarts實(shí)現(xiàn)橫向柱狀圖

    這篇文章主要為大家詳細(xì)介紹了vue echarts實(shí)現(xiàn)橫向柱狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue實(shí)現(xiàn)移動(dòng)端彈出鍵盤功能(防止頁(yè)面fixed布局錯(cuò)亂)

    vue實(shí)現(xiàn)移動(dòng)端彈出鍵盤功能(防止頁(yè)面fixed布局錯(cuò)亂)

    這篇文章主要介紹了vue?解決移動(dòng)端彈出鍵盤導(dǎo)致頁(yè)面fixed布局錯(cuò)亂的問題,通過實(shí)例代碼給大家分享解決方案,對(duì)vue?移動(dòng)端彈出鍵盤相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-04-04

最新評(píng)論