最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

List 列表

瀑布流滾動加載,用于控制長列表的展示

先說使用

1.用npm下載該模塊包

npm i vant -S

2.引入組件

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

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

babel-plugin-import 是一款 babel 插件,它會在編譯過程中將 import 的寫法自動轉換為按需引入的方式

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

接著你可以在代碼中直接引入 Vant 組件,插件會自動將代碼轉化為方式二中的按需引入形式

import { Button, Cell } from 'vant';

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

方式二. 按需引入組件

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

import Button from 'vant/lib/button';

import 'vant/lib/button/style';

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

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

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

引入成功后使用

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

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

初始化loading為false,finished為false。

一切ok。

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

下面給出解決方案。

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

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

list清空,page=1表示第一頁,將loading設置為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: "出錯了~",
      timeout: 1500
     });
    })  
   }, 500);
  },

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

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

在使用van-list組件的時候,為了隱藏ios手機右側的滾動條,我給了組件一個overflow-x:hidden屬性,官方說這個屬性會導致重復觸發(fā)van-list的加載,

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

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

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

相關文章

  • 一起來學習Vue的生命周期

    一起來學習Vue的生命周期

    這篇文章主要為大家詳細介紹了Vue的生命周期,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • vue項目打包后放服務器非根目錄下圖片找不到問題

    vue項目打包后放服務器非根目錄下圖片找不到問題

    這篇文章主要介紹了vue項目打包后放服務器非根目錄下圖片找不到問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 最細致的vue.js基礎語法 值得收藏!

    最細致的vue.js基礎語法 值得收藏!

    這篇文章主要為大家推薦了一篇值得收藏和學習的vue.js最細致的基礎語法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Vue2?Element?description組件列合并詳解

    Vue2?Element?description組件列合并詳解

    在使用Vue的時候經(jīng)常會涉及到表格的列合并,下面這篇文章主要給大家介紹了給大家Vue2?Element?description組件列合并的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • vue封裝TabBar組件的完整步驟記錄

    vue封裝TabBar組件的完整步驟記錄

    組件封裝是為了復用,換成大白話就是,同樣的事情我不想做第二遍,節(jié)省出來的時間用來看動漫不香嗎,下面這篇文章主要給大家介紹了關于vue封裝TabBar組件的完整步驟,需要的朋友可以參考下
    2021-10-10
  • vue + typescript + video.js實現(xiàn) 流媒體播放 視頻監(jiān)控功能

    vue + typescript + video.js實現(xiàn) 流媒體播放 視頻監(jiān)控功能

    視頻才用流媒體,有后臺實時返回數(shù)據(jù), 要支持flash播放, 所以需安裝對應的flash插件。這篇文章主要介紹了vue + typescript + video.js 流媒體播放 視頻監(jiān)控,需要的朋友可以參考下
    2019-07-07
  • Vue官方推薦AJAX組件axios.js使用方法詳解與API

    Vue官方推薦AJAX組件axios.js使用方法詳解與API

    axios是Vue官方推薦AJAX組件,下面為大家介紹axios.js庫的詳細使用方法與API介紹
    2018-10-10
  • VUE3+Element-plus中el-form的使用示例代碼

    VUE3+Element-plus中el-form的使用示例代碼

    這篇文章主要介紹了VUE3+Element-plus中el-form的使用示例代碼,本文通過圖文示例代碼相結合給大家介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • vue項目配置element-ui容易遇到的坑及解決

    vue項目配置element-ui容易遇到的坑及解決

    這篇文章主要介紹了vue項目配置element-ui容易遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue實現(xiàn)輸入框只允許輸入數(shù)字

    vue實現(xiàn)輸入框只允許輸入數(shù)字

    在vue項目中,輸入框只允許輸入數(shù)字,現(xiàn)將自己使用的一種方法記錄,本文結合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2023-11-11

最新評論

加查县| 沈阳市| 荔浦县| 弥渡县| 长葛市| 伊宁县| 山西省| 肇州县| 罗山县| 永寿县| 灵武市| 揭阳市| 西畴县| 富蕴县| 交城县| 太谷县| 温宿县| 酉阳| 昭平县| 津市市| 永春县| 墨玉县| 清镇市| 扶风县| 独山县| 社旗县| 象山县| 象州县| 柘荣县| 中牟县| 江山市| 甘肃省| 蓬溪县| 抚顺县| 惠来县| 重庆市| 信丰县| 广安市| 孟连| 保定市| 驻马店市|