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

vue使用axios實(shí)現(xiàn)動(dòng)態(tài)追加數(shù)據(jù)

 更新時(shí)間:2023年10月26日 10:37:05   作者:itclanCoder  
在vuejs中使用axios時(shí),有時(shí)候需要追加數(shù)據(jù),比如,移動(dòng)端下拉觸底加載,分頁(yè)加載,滑動(dòng)滾動(dòng)條等,下面小編就來(lái)為大家介紹一下如何使用使用axios實(shí)現(xiàn)動(dòng)態(tài)追加數(shù)據(jù)吧

前言

在vuejs中使用axios時(shí),有時(shí)候需要追加數(shù)據(jù),比如,移動(dòng)端下拉觸底加載,分頁(yè)加載,滑動(dòng)滾動(dòng)條,等等,這時(shí)候就需要追加數(shù)據(jù)了,下面我們來(lái)演示下.

代碼演示

<template>
    <div>
          <div>
            <el-button type="primary"  @click="handleBtnGetJoke">請(qǐng)求數(shù)據(jù)</el-button>
            <el-button type="danger" @click="handleBtnClearData" v-if="aDatas.length > 0?true:false">清空數(shù)據(jù)</el-button>
          </div>  
          <div>
            <ul v-if="aDatas.length > 0?true:false">
                <li class="joke-list" v-for="item in aDatas"
                                    :key="item.hashId">{{ item.content }}
                </li>
                <div class="loading" v-if="aDatas.length > 0?true:false"> 
                    <el-button size="mini"  type="primary" @click="handleBtnLoading" >加載</el-button>
                </div>
            </ul> 
          </div>
    </div>
</template>

<script setup>
import axios from "axios";
import { ref  } from "vue";

let aDatas = ref([]);
let page = ref(1);
let pagesize = ref(5);

async function handleBtnGetJoke() {
    const params = {
        key: 'aa1b7ad08be2a09a4e0d2d46897e2dc8',
        page: page.value,
        pagesize:pagesize.value,
        time: 1418816972
    }

    const response =  await axios.get('/api/joke/content/text.php',{params})
    console.log(response);
    if(response.status == 200) {
        const { data } = response.data.result;
        console.log(data);
        // 之類使用了concat方法,將數(shù)據(jù)疊加到aDatas中
        aDatas.value = aDatas.value.concat(data);
    }
}

// 加載數(shù)據(jù),疊加
function handleBtnLoading() {
    // 頁(yè)碼+1,自增
    page.value++;
    // 重新加載數(shù)據(jù)
    handleBtnGetJoke(); 
}

// 清空數(shù)據(jù)
function handleBtnClearData() {
    aDatas.value = [];
}
</script>

<style scoped>
.joke-list {
    list-style-type: decimal;
    list-style-position: outside;
    padding: 5px 0;
    border-bottom: dashed 1px #ccc;
}

.loading {
    margin: 0 auto;
    text-align:center;
}
</style>

在上面的示例代碼中,實(shí)現(xiàn)數(shù)據(jù)的追加, 需要使用concat方法, 該方法用于合并兩個(gè)或多個(gè)數(shù)組,核心就是如下一行代碼

新的數(shù)據(jù)和舊data合并, 然后賦值給aDatas.value

aDatas.value = aDatas.value.concat(data);

而點(diǎn)擊加載更多數(shù)據(jù), 需要使用handleBtnLoading方法, 該方法中, 頁(yè)碼+1, 然后重新加載數(shù)據(jù),調(diào)用一次handleBtnGetJoke方法, 該方法中, 請(qǐng)求數(shù)據(jù), 然后將數(shù)據(jù)追加到aDatas.value中, 這樣就實(shí)現(xiàn)了數(shù)據(jù)的追加

如果不進(jìn)行,頁(yè)碼page.value++, 數(shù)據(jù)不會(huì)追加, 因?yàn)閿?shù)據(jù)是異步加載的, 需要等待數(shù)據(jù)加載完成, 才能追加數(shù)據(jù)

 // 頁(yè)碼+1,自增
    page.value++;
    // 重新加載數(shù)據(jù)
    handleBtnGetJoke(); 

如果想一上來(lái)就加載數(shù)據(jù)

需要從vue中引入onMounted,方法, 該方法, 會(huì)在組件掛載完成后, 執(zhí)行, 這樣, 就可以在掛載完成后, 調(diào)用handleBtnGetJoke方法, 加載數(shù)據(jù)

import { onMounted } from 'vue';

onMounted(() =>  {
    // 調(diào)用handleBtnGetJoke方法, 加載數(shù)據(jù)
    handleBtnGetJoke();
}) 

很多初學(xué)者, 不知道如何實(shí)現(xiàn)數(shù)據(jù)的追加, 其實(shí)很簡(jiǎn)單, 就是使用concat方法, 然后將數(shù)據(jù)追加到aDatas.value中,就可以實(shí)現(xiàn)數(shù)據(jù)追加

針對(duì)寫靜態(tài)頁(yè)面很熟悉, 寫動(dòng)態(tài)頁(yè)面很生疏, 其實(shí), 寫動(dòng)態(tài)頁(yè)面, 比寫靜態(tài)頁(yè)面, 簡(jiǎn)單很多, 因?yàn)閯?dòng)態(tài)頁(yè)面, 需要使用vue提供的API, 這些API, 都是封裝好的, 調(diào)用起來(lái)很簡(jiǎn)單

但是基礎(chǔ)的數(shù)組方法,增刪查改, 還是需要了解的, 因?yàn)檫@些基礎(chǔ)的數(shù)組方法, 都是API封裝的, 調(diào)用起來(lái)很簡(jiǎn)單,如果不知道這些基礎(chǔ)的數(shù)組方法, 寫動(dòng)態(tài)頁(yè)面, 就會(huì)很生疏,會(huì)很難寫

數(shù)組中常見實(shí)用方法, 如下所示

方法說(shuō)明
push向數(shù)組末尾添加一個(gè)或多個(gè)元素
pop刪除數(shù)組的最后一個(gè)元素
shift刪除數(shù)組的第一個(gè)元素
unshift向數(shù)組的開頭添加一個(gè)或多個(gè)元素
slice截取數(shù)組, 返回一個(gè)新數(shù)組
splice刪除數(shù)組中指定位置的元素, 并可在指定位置添加元素
concat合并兩個(gè)或多個(gè)數(shù)組
join把數(shù)組作為字符串返回
indexOf查找元素在數(shù)組中的位置
lastIndexOf查找元素在數(shù)組中的最后一個(gè)位置
forEach遍歷數(shù)組
map遍歷數(shù)組, 返回一個(gè)新數(shù)組
filter過濾數(shù)組, 返回一個(gè)新數(shù)組
some判斷數(shù)組中, 是否有元素滿足條件
every判斷數(shù)組中, 所有元素是否都滿足條件
reduce遍歷數(shù)組, 并返回一個(gè)值
reduceRight遍歷數(shù)組, 并返回一個(gè)值
find查找數(shù)組中, 第一個(gè)滿足條件的元素
findIndex查找數(shù)組中, 第一個(gè)滿足條件的元素的位置
fill用一個(gè)固定值填充數(shù)組
copyWithin數(shù)組的一部分, 復(fù)制到同一數(shù)組中的另一個(gè)位置
includes查找數(shù)組中, 是否包含某個(gè)元素
entries返回?cái)?shù)組中每個(gè)索引的鍵值對(duì)
keys返回?cái)?shù)組中每個(gè)索引的鍵
values返回?cái)?shù)組中每個(gè)索引的值
isArray判斷是否為數(shù)組

總結(jié)

以上這些數(shù)組的基礎(chǔ)方法需要非常熟悉,因?yàn)榫幊讨胁僮鲾?shù)據(jù),就是操作數(shù)組,字符串,對(duì)象,一些方法是非常重實(shí)用的,如果自己不知道,那就會(huì)業(yè)務(wù)編寫實(shí)現(xiàn)受阻礙

實(shí)現(xiàn)動(dòng)態(tài)的追加數(shù)據(jù),也比較簡(jiǎn)單,其核心就是數(shù)組當(dāng)中的concat方法,以及需要頁(yè)碼自增,即可實(shí)現(xiàn)

到此這篇關(guān)于vue使用axios實(shí)現(xiàn)動(dòng)態(tài)追加數(shù)據(jù)的文章就介紹到這了,更多相關(guān)vue axios動(dòng)態(tài)追加數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue彈窗組件使用方法

    vue彈窗組件使用方法

    彈窗是一個(gè)項(xiàng)目必備的復(fù)用利器,這篇文章主要介紹了vue彈窗組件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • JS框架之vue.js(深入三:組件1)

    JS框架之vue.js(深入三:組件1)

    這篇文章主要介紹了JS框架之vue.js component組件的相關(guān)資料,本文通過實(shí)例詳解的方式給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • vue引入高德地圖并繪制點(diǎn)線面的方法

    vue引入高德地圖并繪制點(diǎn)線面的方法

    這篇文章主要介紹了vue引入高德地圖并繪制點(diǎn)線面的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-03-03
  • 解決element-ui的table表格控件表頭與內(nèi)容列不對(duì)齊問題

    解決element-ui的table表格控件表頭與內(nèi)容列不對(duì)齊問題

    這篇文章主要介紹了解決element-ui的table表格控件表頭與內(nèi)容列不對(duì)齊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue3中使用jsx/tsx的教程詳解

    Vue3中使用jsx/tsx的教程詳解

    這篇文章主要為大家詳細(xì)介紹了如何在Vue3中使用jsx/tsx的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以了解下
    2024-02-02
  • vue數(shù)據(jù)push后不能響應(yīng)式更新的問題

    vue數(shù)據(jù)push后不能響應(yīng)式更新的問題

    這篇文章主要介紹了vue數(shù)據(jù)push后不能響應(yīng)式更新的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue實(shí)現(xiàn)數(shù)字時(shí)鐘效果

    Vue實(shí)現(xiàn)數(shù)字時(shí)鐘效果

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)數(shù)字時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 基于Vue 2.0的模塊化前端 UI 組件庫(kù)小結(jié)

    基于Vue 2.0的模塊化前端 UI 組件庫(kù)小結(jié)

    AT-UI 是一款基于 Vue.js 2.0 的輕量級(jí)、模塊化前端 UI 組件庫(kù),主要用于快速開發(fā) PC 網(wǎng)站產(chǎn)品。下面通過本文給大家介紹Vue 2.0的模塊化前端 UI 組件庫(kù),需要的朋友參考下吧
    2017-12-12
  • element?el-select下拉框選擇失效解決辦法

    element?el-select下拉框選擇失效解決辦法

    el-select即選擇器用于從若干個(gè)候選項(xiàng)中選擇其中一個(gè)(或者多個(gè)),在傳統(tǒng)網(wǎng)頁(yè)開發(fā)中選擇器經(jīng)常被稱作下拉框、下拉列表是最常用的表單元素之一,這篇文章主要給大家介紹了關(guān)于element?el-select下拉框選擇失效解決辦法,需要的朋友可以參考下
    2023-08-08
  • web面試MVC與MVVM區(qū)別及Vue為什么不完全遵守MVVM解答

    web面試MVC與MVVM區(qū)別及Vue為什么不完全遵守MVVM解答

    這篇文章主要介紹了web面試中常問問題,MVC與MVVM區(qū)別以及Vue為什么不完全遵守MVVM的難點(diǎn)解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09

最新評(píng)論

贵阳市| 阿图什市| 大连市| 长葛市| 弥渡县| 本溪市| 双柏县| 汾阳市| 仁寿县| 承德市| 溆浦县| 清涧县| 盖州市| 长兴县| 治县。| 儋州市| 比如县| 绥江县| 南投市| 青神县| 抚顺县| 板桥市| 嘉黎县| 静乐县| 响水县| 屏东县| 灵璧县| 乐业县| 延川县| 咸丰县| 茂名市| 泾源县| 景泰县| 黄石市| 安宁市| 浪卡子县| 罗定市| 沙田区| 长春市| 云梦县| 安平县|