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

vue處理一千張圖片進(jìn)行分頁加載思路詳解

 更新時間:2023年02月17日 11:07:55   作者:憤怒的小前端  
開發(fā)過程中,如果后端一次性返回你1000多條圖片或數(shù)據(jù),那我們前端應(yīng)該怎么用什么思路去更好的渲染呢?這篇文章主要介紹了vue處理一千張圖片進(jìn)行分頁加載,需要的朋友可以參考下

vue處理一千張圖片進(jìn)行分頁加載

開發(fā)過程中,如果后端一次性返回你1000多條圖片或數(shù)據(jù),那我們前端應(yīng)該怎么用什么思路去更好的渲染呢?

第一種:我們可以使用分頁加載
第二種:我們可以進(jìn)行懶加載

那我們用第一種方法使用分頁加載的方法進(jìn)行渲染

總數(shù)據(jù):

在這里插入圖片描述

思路:

//dataList 在data中定義的數(shù)組來接收總數(shù)居
//imgList 在data中定義的數(shù)組來接受頁面顯示圖片的數(shù)組

  • 第一步:我們定義一個數(shù)組并且將1000條數(shù)據(jù)賦值給它
  • 第二步:我們先解決分頁的問題,我們使用el-pagination組件先給該組件 的"total"、"page"、"limit"分別賦值
  • 第三步:頁面初始化的時候,我們首先加載dataList的前十條數(shù)據(jù)具體代碼如下: this.imgList = this.dataList.slice(0,10)
  • 第三步:當(dāng)我們點(diǎn)擊分頁時,我們給el-pagination組件添加@pagination事件,在事件的方法中,我們可以獲取到當(dāng)前頁面以及當(dāng)前顯示條數(shù)

我們在這個方法中需要給el-pagination組件中"size"、"page"參數(shù)賦值,然后在截取dataList在該頁面的數(shù)據(jù)并且給imgList數(shù)組進(jìn)行賦值。

   //獲取該頁的數(shù)據(jù) 
	let minNum = (val.page - 1)*val.limit 
   	let maxNum =val.page*val.limit 
   	this.imgList = dataList.slice(minNum,maxNum)

具體代碼

//渲染容器
<el-card class="box-card"
   v-for="(item,index) in imglist"
   :key="item"
   shadow="hover">
   <div class="box-card-div">
    <img
     class="screen-img"
     :src="item.img"
     :key="index"
     :alt="item.name"
    />
   	<div class="title">{{ item.name }}</div>
  </div>
</el-card>

//分頁
<pagination
  v-show="toggPage.total > 0"
  :total="toggPage.total"
  :page.sync="toggPage.currentPage"
  :limit.sycn="toggPage.size"
  @pagination="togghandleCurrentChange"
 />
//因為業(yè)務(wù)需求封裝的方法
queryImgList(){
	//給頁面家了一個loading
	this.imgloading = true
     //獲取分頁總條數(shù)
     this.toggPage.total = this.dataList.length
     //頁面初始化時顯示的前十條數(shù)據(jù)
     this.imgList = dataList.slice(0,10)
     this.imgloading = false
},
togghandleCurrentChange(val){
	//如果不知道val可以在這打印
	console.log('val',val)
	this.imgloading = true
	this.toggPage.size = val.limit
	this.toggPage.currentPage = val.page
	//記得將數(shù)據(jù)先制空在進(jìn)行賦值,否則你懂的
	this.imgList = []
	//獲取當(dāng)前頁面的數(shù)據(jù)
	let minNum = (val.page - 1)*val.limit
    let maxNum = val.page*val.limit
    this.imgList = this.dataList.slice(minNum,maxNum)
    this.imgloading = false
}

以上就可以完美結(jié)果該需求了,因為我們需求更復(fù)雜,刪了不少代碼

如果更想完美可以它加一個模糊查詢
我們以圖片名稱或者某個字段進(jìn)行查詢
思路:

queryImgValue //輸入框綁定的值
queryBtn // 查詢按鈕事件方法名稱

  • 第一步: 添加一個el-input給輸入框綁定一個v-model,然后添加el-button并且添加一個@click事件
  • 第二步: 點(diǎn)擊按鈕觸發(fā)queryBtn方法,在該方法中循環(huán)dataList然后根據(jù)循環(huán)的item.namequeryImgValue進(jìn)行匹配,如果包含輸入的值就push到一個新數(shù)組并且給this.imgList進(jìn)行賦值

具體代碼:

queryBtn(){
	//之所以判斷是否為空 -----如果用戶沒有輸入直接點(diǎn)擊就沒必要再去執(zhí)行下面代碼
	if(this.queryImgValue){
		let img = []
		//循環(huán)該數(shù)據(jù)進(jìn)行匹配
       	this.dataList.forEach(item => {
       	//如果name包含用戶輸入的名稱將該條數(shù)據(jù)push到新數(shù)組中
          if(item.name.includes(this.queryImgValue)){
            img.push(item)
          }
        })
        //賦值給imgList,不要忘記還需要給查詢的總條數(shù)賦值喲
        this.imglist = img
        this.toggPage.total = this.imglist.length
	}
}

以上就很完美啦!!!

到此這篇關(guān)于vue處理一千張圖片進(jìn)行分頁加載的文章就介紹到這了,更多相關(guān)vue圖片分頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中如何配置proxy代理

    vue中如何配置proxy代理

    這篇文章主要介紹了vue中如何配置proxy代理問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue微信分享的實現(xiàn)(在當(dāng)前頁面分享其他頁面)

    vue微信分享的實現(xiàn)(在當(dāng)前頁面分享其他頁面)

    這篇文章主要介紹了vue微信分享,在當(dāng)前頁面分享其他頁面,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • vue webpack打包優(yōu)化操作技巧

    vue webpack打包優(yōu)化操作技巧

    webpack是react項目標(biāo)配的打包工具,和NPM搭配起來使用管理模塊實在非常方便。這篇文章主要介紹了webpack打包優(yōu)化(VUE Project),需要的朋友可以參考下
    2018-02-02
  • vue print.js打印支持Echarts圖表操作

    vue print.js打印支持Echarts圖表操作

    這篇文章主要介紹了vue print.js打印支持Echarts圖表操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue + canvas實現(xiàn)涂鴉面板的示例代碼

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

    這篇文章主要給大家介紹了vue + canvas實現(xiàn)涂鴉面板的示例,文章通過代碼示例介紹的非常詳細(xì),感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • 詳解Vue的異步更新實現(xiàn)原理

    詳解Vue的異步更新實現(xiàn)原理

    這篇文章主要介紹了Vue的異步更新實現(xiàn)原理,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-12-12
  • vue-cli隨機(jī)生成port源碼的方法

    vue-cli隨機(jī)生成port源碼的方法

    這篇文章主要介紹了vue-cli隨機(jī)生成port源碼的方法,文中給大家介紹了vue 隨機(jī)色生成方法,需要的朋友可以參考下
    2019-09-09
  • 在Vue2項目中使用Mock.js的詳細(xì)教程

    在Vue2項目中使用Mock.js的詳細(xì)教程

    Mock.js?是一個用于生成隨機(jī)數(shù)據(jù)和攔截?Ajax?請求的?JavaScript?庫,它非常適合在前端開發(fā)中模擬后端?API,尤其是在前后端分離的開發(fā)模式下,本文給大家介紹了如何在Vue2項目中使用Mock.js,需要的朋友可以參考下
    2024-10-10
  • vant實現(xiàn)購物車功能

    vant實現(xiàn)購物車功能

    這篇文章主要為大家詳細(xì)介紹了vant實現(xiàn)購物車功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 使用vite兼容低端瀏覽器配置

    使用vite兼容低端瀏覽器配置

    這篇文章主要介紹了使用vite兼容低端瀏覽器配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評論

克拉玛依市| 囊谦县| 集安市| 綦江县| 海城市| 略阳县| 无锡市| 靖西县| 和顺县| 枣阳市| 静海县| 山东| 太仓市| 新密市| 钟山县| 泊头市| 北票市| 行唐县| 奇台县| 城固县| 平舆县| 玛沁县| 申扎县| 东至县| 武强县| 类乌齐县| 郎溪县| 崇文区| 色达县| 新余市| 阜新| 景德镇市| 五台县| 古蔺县| 棋牌| 临泉县| 砚山县| 白山市| 麻江县| 玉田县| 武强县|