解決vue生產(chǎn)環(huán)境,頁面卡死的問題
vue生產(chǎn)環(huán)境,頁面卡死的解決
問題描述
開發(fā)環(huán)境沒問題,本地連測試環(huán)境沒問題,打包到測試環(huán)境,直接把頁面整崩k,搞得接口請求啥都沒問題,但是接口preview就是不返回,
解決過程
- a.起初認為是后端打包得問題,但是進過分析和后臺測試,基本排除
- b.前端重新打包,問題復現(xiàn),(可能是頁面陷入死循環(huán),造成網(wǎng)頁渲染出現(xiàn)問題,導致preview沒有返回值)
- c.本地沒有問題,本地連測試環(huán)境也沒出現(xiàn)問題,基本排除有出現(xiàn)死循環(huán)的可能
- d.最后發(fā)現(xiàn)echarts在初始化的時候會報錯,最后將報錯的代碼刪除掉。(本地也報錯,但是未出現(xiàn)頁面卡死的現(xiàn)象)
最后得出在項目開發(fā)中,任何一個錯誤都可能造成項目卡死和瀏覽器崩潰,所以我們需要嚴謹?shù)拈_發(fā)項目,有錯誤必須解決。
vue項目頁面卡死原因排查
問題描述
點擊后臺管理某一菜單發(fā)現(xiàn)直接卡死,沒有其他報錯信息,整個網(wǎng)頁鼠標變?yōu)槭种笭顟B(tài)不能進行任何操作
問題排查
首先是通過注釋代碼發(fā)現(xiàn)問題是出在以下代碼中
<basic-container> <h4>教師指標數(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>
查看日志輸出
鎖定到問題是數(shù)據(jù)展示的data 需要array 但是卻拿到了Object
將數(shù)據(jù)展示方式tableData改為 table:[]數(shù)組類型進行展示即可
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 }) },
總結
這里有幾個問題一個是avue 版本兼容的問題 貌似舊版本會兼容這種情況不會出現(xiàn)卡死的問題大佬修改框架后出現(xiàn)的這個問題另一個是返回值規(guī)范 如果使用表格 最好都返回list數(shù)組 不要返回單object類型導致出現(xiàn)類似
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue中watch、computed、updated三者的區(qū)別及用法
這篇文章主要介紹了Vue中watch、computed、updated三者的區(qū)別及用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07