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

uniapp中使用u-loadmore,loadText內(nèi)容不隨status改變刷新方式

 更新時(shí)間:2024年05月24日 09:25:24   作者:D_lunar  
這篇文章主要介紹了uniapp中使用u-loadmore,loadText內(nèi)容不隨status改變刷新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

uniapp中使用u-loadmore,loadText內(nèi)容不隨status改變刷新

uniapp中使用u-loadmore,使用情況比較復(fù)雜,出現(xiàn)loadText內(nèi)容不隨status改變刷新的情況,即當(dāng)status="loading"時(shí),顯示的內(nèi)容是loadmore或nomore的文字。

解決辦法

添加key參數(shù)

<u-loadmore :status="loadStatus" :load-text="loadText"  :key="3"/>

uni-app上拉加載 使用uni-ui的LoadMore組件

上拉加載

我在代碼里是配合list使用的LoadMore 組件實(shí)現(xiàn)下拉加載,貼一個(gè)官網(wǎng)組件地址 LoadMore

下拉加載的原理大概是:

  • 設(shè)置好每頁展示多少條數(shù)據(jù),加載第一頁。
  • 加載完后判斷當(dāng)前狀態(tài),如果數(shù)據(jù)列表的長(zhǎng)度=全部數(shù)據(jù)長(zhǎng)度,則將狀態(tài)設(shè)置為noMore,否則為more。
  • 從第二頁開始,每加載一頁就在數(shù)據(jù)列表中拼接下一頁內(nèi)容。重復(fù)進(jìn)行(2)直到加載完全部數(shù)據(jù)。
  • 當(dāng)數(shù)據(jù)加載完畢后頁碼pageNum不再++。

下拉刷新

使用onPullDownRefresh

  • 在 js 中定義 onPullDownRefresh 處理函數(shù)(和onLoad等生命周期函數(shù)同級(jí)),監(jiān)聽該頁面用戶下拉刷新事件。
  • 需要在 pages.json 里,找到的當(dāng)前頁面的pages節(jié)點(diǎn),并在 style 選項(xiàng)中開啟 enablePullDownRefresh。
  • 當(dāng)處理完數(shù)據(jù)刷新后,uni.stopPullDownRefresh可以停止當(dāng)前頁面的下拉刷新。
//pages.json
{
    "path": "pages/beiliao/beiliao",
    "style": {
        "navigationBarTitleText": "備料單",
        "navigationStyle": "custom",
        "enablePullDownRefresh": true,
        "app-plus": {
            "titleNView": false
        }
     }
},

具體代碼:

<template>
    <view style="background-color: #F0F0F0;">
        <view class="box" style="padding:10px 10px;margin:70px 10px -10px 10px">
            <uni-list style="background-color: #F0F0F0;">
                <view v-for="(item,index) in tableList" :key="index">
                    //list內(nèi)容省略啦~
                    <uni-list-item showArrow :note="'xxx'" />
                </view>
                <view class="example-body">
                    <uni-load-more :status="status" :content-text="contentText"  @clickLoadMore="clickLoadMore"/>
                </view>
            </uni-list>
        </view>
    </view>
</template>
<script>
    import util from '../../util/util.js';
    import uniPagination from '@/components/uni-pagination/uni-pagination.vue'
    import uniListItem from "@/components/uni-list-item/uni-list-item.vue"
    import uniList from "@/components/uni-list/uni-list.vue"
    import uniSection from "@/components/uni-section/uni-section.vue"
    import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue"
    export default {
        components: {
            uniPagination,
            uniListItem,
            uniList,
            uniSection,
            uniLoadMore
        },
        data() {
            return {
                total: 0,
                pageNum: 1,
                pageSize: 10,
                tableList: [],
                status: 'more',
                contentText: {
                    contentdown: '查看更多',
                    contentrefresh: '加載中',
                    contentnomore: '沒有更多'
                }
            }
        },
        onLoad() {
            this.queryByInput();
        },
        //上拉加載
        onReachBottom(){
            if (this.status == 'noMore'){
                return;
            }
            this.pageNum ++;
            console.log(this.pageNum)
            this.getTableList();
        },
        //下拉刷新
        onPullDownRefresh(){
            uni.stopPullDownRefresh();
            this.tableList = [];
            this.queryByInput()
        },
        methods: {
            queryByInput:function(){
                this.pageNum = 1;
                this.getTableList();
            },
            //條件查詢
            getTableList: function() {
                var that = this;
                var params = {
                    current: this.pageNum,
                    size: this.pageSize
                }this.$http.get('/workshop/productionmaterialorder/page', params, {
                }).then(function(response) {
                    //這里只會(huì)在接口是成功狀態(tài)返回
                    that.total = response.total
                    //第一次加載時(shí),若只有一頁數(shù)據(jù)(這里寫的簡(jiǎn)直if語句之王,大家懂的都懂,怪我太菜了?。。?
                    if(that.tableList.length == 0) {
                        that.status = 'more'
                        that.tableList = that.tableList.concat(response.records)
                        if(that.tableList.length == that.total) {
                            that.status = 'noMore'
                            return false;
                        } 
                    } else {
                        if(that.tableList.length == that.total) {
                            that.status = 'noMore'
                            return false;
                        } else {
                            that.status = 'more'
                            that.tableList = that.tableList.concat(response.records)
                        }
                    }
                }).catch(function(error) {
                    //這里只會(huì)在接口是失敗狀態(tài)返回,不需要去處理錯(cuò)誤提示
                    console.log(error);
                });
            },
            //點(diǎn)擊查看更多觸發(fā)事件
            clickLoadMore(e) {
                // console.log('加載更多')
            }
        }
    }
</script>

遇到的問題

1.循環(huán)拼接,最后一頁結(jié)束后又開始拼接第一頁,主要是由于沒有限制pageNum,當(dāng)狀態(tài)變成noMore不再進(jìn)行頁碼的增加即可。

解決辦法:

//上拉加載
onReachBottom(){
    //解決上述問題
    if (this.status == 'noMore'){
        return;
    }
    this.pageNum ++;
    console.log(this.pageNum)
    this.getTableList();
},

2.新增數(shù)據(jù) ,如果要新增一條列表數(shù)據(jù),我這里進(jìn)行的操作是從A跳轉(zhuǎn)頁面B輸入新息,新增后回到A頁面,此時(shí)需要A重新加載頁面。(加載頁面在onShow中調(diào)用)而如果在從A跳轉(zhuǎn)B時(shí),頁面狀態(tài)可能是處于第三頁,無法保留住此狀態(tài)。

目前想到的解決方法:不刷新A,新增時(shí)返回新增數(shù)據(jù)的id,將新增信息添加至原本的列表下即可。

3.修改數(shù)據(jù) ,A跳B修改,修改成功后返回A頁面,存在情況和新增時(shí)一樣,可能你在第三頁選中某條數(shù)據(jù)進(jìn)行修改,如果修改成功后重新加載A頁面就會(huì)很麻煩,又要翻下去查看剛才修改的數(shù)據(jù),考慮到這個(gè)問題所以我選擇成功后不刷新A頁面。

解決方法:修改時(shí)將對(duì)應(yīng)數(shù)據(jù)的index傳遞給B頁面,在B修改完數(shù)據(jù)后再把index返回給A,這樣就可以把修改數(shù)據(jù)所在的位置記錄下來。(AB頁面怎么傳參我之前寫過,不再重復(fù)記錄)

//如果返回的數(shù)據(jù)有index,則替換掉該位置修改前數(shù)據(jù),沒有則是新增操作進(jìn)行刷新
if(this.index) {
    this.tableList[this.index].xx= this.xx
} else {
    this.tableList = [];
    this.queryByInput();
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue項(xiàng)目中引入外部文件的方法(css、js、less)

    Vue項(xiàng)目中引入外部文件的方法(css、js、less)

    本篇文章主要介紹了Vue項(xiàng)目中引入外部文件的方法(css、js、less),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-07-07
  • vue項(xiàng)目完成后如何實(shí)現(xiàn)項(xiàng)目?jī)?yōu)化的示例

    vue項(xiàng)目完成后如何實(shí)現(xiàn)項(xiàng)目?jī)?yōu)化的示例

    本文主要介紹了vue項(xiàng)目完成后如何實(shí)現(xiàn)項(xiàng)目?jī)?yōu)化的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • mpvue中配置vuex并持久化到本地Storage圖文教程解析

    mpvue中配置vuex并持久化到本地Storage圖文教程解析

    這篇文章主要介紹了mpvue中配置vuex并持久化到本地Storage的教程詳解,# 配置vuex和在vue中相同,只是mpvue有一個(gè)坑,就是不能直接在new Vue的時(shí)候傳入store。本文分步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2018-03-03
  • vue可滑動(dòng)的tab組件使用詳解

    vue可滑動(dòng)的tab組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了vue可滑動(dòng)的tab組件使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue3+ts項(xiàng)目中.env配置環(huán)境變量與情景配置方式

    vue3+ts項(xiàng)目中.env配置環(huán)境變量與情景配置方式

    本文介紹了如何在Vite中配置環(huán)境變量和不同的運(yùn)行模式,環(huán)境變量文件以.env開頭,僅VITE_前綴的變量會(huì)被暴露,開發(fā)模式加載.env.development,生產(chǎn)模式加載.env.production,NODE_ENV用于區(qū)分開發(fā)和生產(chǎn)環(huán)境
    2024-10-10
  • Vue使用vxe-table導(dǎo)出和自定義Excel樣式的詳細(xì)教程

    Vue使用vxe-table導(dǎo)出和自定義Excel樣式的詳細(xì)教程

    vxe-table 不僅支持將表格數(shù)據(jù)導(dǎo)出為 .xlsx 文件,還提供了強(qiáng)大的自定義樣式能力,因此本文給大家介紹了Vue使用vxe-table導(dǎo)出和自定義Excel樣式的詳細(xì)教程,需要的朋友可以參考下
    2026-05-05
  • Vue中搭配Bootstrap實(shí)現(xiàn)Vue的列表增刪功能

    Vue中搭配Bootstrap實(shí)現(xiàn)Vue的列表增刪功能

    日常開發(fā)中,我們可以用?“拿來主義”?借助Bootstarp現(xiàn)成的一些樣式,快速生成我們想要的頁面布局,避免書寫大量的HTML和CSS代碼,省下了許多不必要的時(shí)間,可以直接搭配vue使用
    2022-11-11
  • 前端設(shè)置cookie之vue-cookies使用及說明

    前端設(shè)置cookie之vue-cookies使用及說明

    這篇文章主要介紹了前端設(shè)置cookie之vue-cookies使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 如何在Vue3中使用Ref訪問DOM元素詳解

    如何在Vue3中使用Ref訪問DOM元素詳解

    在Vue3中可以使用`ref`來獲取DOM元素,下面這篇文章主要給大家介紹了關(guān)于如何在Vue3中使用Ref訪問DOM元素的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • 基于element日歷組件實(shí)現(xiàn)簽卡記錄

    基于element日歷組件實(shí)現(xiàn)簽卡記錄

    這篇文章主要為大家詳細(xì)介紹了基于element日歷組件實(shí)現(xiàn)簽卡記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論

普兰店市| 黑山县| 英德市| 营山县| 威宁| 铜陵市| 三原县| 临汾市| 乐昌市| 西宁市| 永年县| 丹东市| 乌海市| 民和| 翁牛特旗| 射阳县| 武宣县| 万年县| 永春县| 定安县| 嘉善县| 武川县| 荔浦县| 太湖县| 青海省| 永州市| 临漳县| 栖霞市| 城市| 札达县| 汉川市| 满洲里市| 措美县| 沅江市| 杨浦区| 紫云| 张家界市| 涿州市| 商水县| 孝感市| 萨迦县|