vue項(xiàng)目中請(qǐng)求數(shù)據(jù)特別多導(dǎo)致頁(yè)面卡死的解決
vue請(qǐng)求數(shù)據(jù)特別多導(dǎo)致頁(yè)面卡死
1. 在平時(shí)開發(fā)中經(jīng)常會(huì)碰到數(shù)據(jù)量特別大,請(qǐng)求接口時(shí)導(dǎo)致頁(yè)面卡死或者崩潰的情況
上圖這里就是因?yàn)閿?shù)據(jù)太大導(dǎo)致頁(yè)面在數(shù)據(jù)請(qǐng)求回來(lái)之前一直處于卡死的狀態(tài),這種時(shí)候可以使用freeze方法來(lái)為數(shù)組賦值,將 this.xxx = res 改為 this.xxx = Object.freeze(res) ,僅供參考。
ps: 本人小白一枚,目前我碰到的是可以用這種方法解決
vue項(xiàng)目頁(yè)面卡死原因排查
問(wèn)題描述
點(diǎn)擊后臺(tái)管理某一菜單發(fā)現(xiàn)直接卡死,沒(méi)有其他報(bào)錯(cuò)信息,整個(gè)網(wǎng)頁(yè)鼠標(biāo)變?yōu)槭种笭顟B(tài)不能進(jìn)行任何操作
問(wèn)題排查
首先是通過(guò)注釋代碼發(fā)現(xiàn)問(wèn)題是出在以下代碼中
<basic-container> <h4>教師指標(biāo)數(shù)據(jù)</h4> <avue-crud ref="crud" :data="tableData" :table-loading="tableLoading" :option="tableOption" @refresh-change="refreshChange" @search-change="searchChange"> <template slot-scope="scope" slot="menu"> <el-button type="text" icon="el-icon-view" size="small" @click="handleView(scope.row,scope.index)">查看 </el-button> </template> </avue-crud> </basic-container>
查看日志輸出
鎖定到問(wèn)題是數(shù)據(jù)展示的data 需要array 但是卻拿到了Object
將數(shù)據(jù)展示方式tableData改為 table:[]數(shù)組類型進(jìn)行展示即可
data:{ return :{ tableData: [] ] } getList() { this.tableLoading = true; this.tableData=[]; fetchList(this.listQuery).then(response => { console.log("------------------"+response.data.data) this.tableData.push(response.data.data) ; this.tableLoading = false }) },
小結(jié)一下
這里有幾個(gè)問(wèn)題
一個(gè)是avue 版本兼容的問(wèn)題 貌似舊版本會(huì)兼容這種情況不會(huì)出現(xiàn)卡死的問(wèn)題
大佬修改框架后出現(xiàn)的這個(gè)問(wèn)題
另一個(gè)是返回值規(guī)范 如果使用表格 最好都返回list數(shù)組 不要返回單object類型導(dǎo)致出現(xiàn)類似
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue router動(dòng)態(tài)路由下讓每個(gè)子路由都是獨(dú)立組件的解決方案
這篇文章主要介紹了vue router動(dòng)態(tài)路由下讓每個(gè)子路由都是獨(dú)立組件的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-04-04vue 數(shù)據(jù)雙向綁定的實(shí)現(xiàn)方法
這篇文章主要介紹了vue 數(shù)據(jù)雙向綁定的實(shí)現(xiàn)方法,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-03-03vue2中的keep-alive使用總結(jié)及注意事項(xiàng)
vue2.0提供了一個(gè)keep-alive組件用來(lái)緩存組件,避免多次加載相應(yīng)的組件,減少性能消耗。本文給大家介紹vue2中的keep-alive使用總結(jié)及注意事項(xiàng),需要的朋友參考下吧2017-12-12Vue 2.5 Level E 發(fā)布了: 新功能特性一覽
很高興Vue 2.5 Level E 發(fā)布了。在這篇文章中,我們將重點(diǎn)介紹一些更重要的的變化:更好的 TypeScript 集成,更好的錯(cuò)誤處理,更好地支持單文件組件中的函數(shù)式組件以及與環(huán)境無(wú)關(guān)的服務(wù)端渲染2017-10-10Vue項(xiàng)目中CSS?Modules和Scoped?CSS的介紹與區(qū)別
在vue中我們有兩種方式可以定義css作用域,一種是scoped,另一種就是css modules,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中CSS?Modules和Scoped?CSS的相關(guān)資料,需要的朋友可以參考下2022-03-03