欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue異步請求導致頁面數(shù)據(jù)渲染錯誤問題解決方法示例

 更新時間:2023年09月25日 09:16:10   作者:SHQ5785  
這篇文章主要為大家介紹了Vue中異步請求導致頁面數(shù)據(jù)渲染錯誤問題解決方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

一、場景描述

Vue項目優(yōu)化過程中,頁面部分通過JS調(diào)用promise返回的異步數(shù)據(jù),導致頁面部分始終無法加載后臺返回的數(shù)據(jù)。通過觸發(fā)其他DOM操作(例如折疊欄位的操作),后臺數(shù)據(jù)可以正常渲染展示。

處理邏輯大致如下:

<template>
	<div v-for="(items, index) in results" :key="items.itemsID">
		<span v-for="(item, index) in items.appendItems" :key="item.itemID">
			<el-button type="text" @click="handlerClick(item)">
				{{item.itemName}}
			</el-button>
		</span>
	</div>
</template>
<script>
	results.foreach((result, index, results) => {
		results[index].appendItems = []
		aysnMethods(inputParams).then(res => {
			results[index].appendItems = res.returnResults
		})
	})
</script>

二、問題分析

經(jīng)過頁面數(shù)據(jù)輸出及debugger斷點調(diào)試,發(fā)現(xiàn)在頁面渲染結束前,異步數(shù)據(jù)并未處理完畢,導致頁面數(shù)據(jù)渲染問題。

vue實例生成后,再次給對象賦值時,并不會自動更新到視圖上去; 當我們?nèi)タ?code>vue文檔的時候,會發(fā)現(xiàn)有這么一句話:如果在實例創(chuàng)建之后添加新的屬性到實例上,它不會觸發(fā)視圖更新。

受 ES5 限制,Vue.js 不能檢測到對象屬性的添加或刪除,即Vue未做到臟數(shù)據(jù)檢查。因為 Vue.js 在初始化實例時將屬性轉為 getter/setter,所以屬性必須在 data 對象上才能讓 Vue.js 轉換它,才能讓它是響應的。

三、解決措施

通過以上問題分析,可通過v-if控制頁面渲染、銷毀邏輯,在異步方法請求前銷毀相應數(shù)據(jù),異步方法請求成功后新建相應數(shù)據(jù)段。
代碼如下:

<template>
	<div v-if="showForm">
		<div v-for="(items, index) in results" :key="items.itemsID">
			<span v-for="(item, index) in items.appendItems" :key="item.itemID">
				<el-button type="text" @click="handlerClick(item)">
					{{item.itemName}}
				</el-button>
			</span>
		</div>
	</div>
</template>
<script>
	data(): {
		return {
			showForm: false
		}
	}
	results.foreach((result, index, results) => {
		results[index].appendItems = []
		vm.showForm = false
		aysnMethods(inputParams).then(res => {
			results[index].appendItems = res.returnResults
			vm.showForm = false
		})
	})
</script>

后經(jīng)過實踐發(fā)現(xiàn),另一種解決方式可應用this.$set()實現(xiàn)。

拓展閱讀

Vue進階Vue.set()和this.$set()介紹

Vue進階給對象動態(tài)添加屬性和值

以上就是Vue異步請求導致頁面數(shù)據(jù)渲染錯誤問題解決方法示例的詳細內(nèi)容,更多關于Vue異步請求頁面渲染錯誤的資料請關注腳本之家其它相關文章!

相關文章

  • Vue router/Element重復點擊導航路由報錯問題及解決

    Vue router/Element重復點擊導航路由報錯問題及解決

    這篇文章主要介紹了Vue router/Element重復點擊導航路由報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue-router命名視圖的使用講解

    vue-router命名視圖的使用講解

    今天小編就為大家分享一篇關于vue-router命名視圖的使用講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Vue?Steam同款登錄驗證數(shù)字輸入框功能

    Vue?Steam同款登錄驗證數(shù)字輸入框功能

    這篇文章主要介紹了Vue?Steam同款登錄驗證數(shù)字輸入框功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • Vue結合SignalR實現(xiàn)前后端實時消息同步

    Vue結合SignalR實現(xiàn)前后端實時消息同步

    這篇文章主要為大家詳細介紹了Vue結合SignalR實現(xiàn)前后端實時消息同步,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • vue的狀態(tài)管理模式vuex

    vue的狀態(tài)管理模式vuex

    本篇文章主要介紹了深入理解vue的狀態(tài)管理模式vuex,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 關于配置babel-plugin-import報錯的坑及解決

    關于配置babel-plugin-import報錯的坑及解決

    這篇文章主要介紹了關于配置babel-plugin-import報錯的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue form 表單提交后刷新頁面的方法

    vue form 表單提交后刷新頁面的方法

    今天小編就為大家分享一篇vue form 表單提交后刷新頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue項目API接口封裝的超詳細解答

    Vue項目API接口封裝的超詳細解答

    在前端vue的開發(fā)中,有一點是必須要做的,那就是將所有的API接口封裝起來,因為從開發(fā)到最終上線的過程中,API是需要經(jīng)常更換的,下面這篇文章主要給大家介紹了關于Vue項目API接口封裝的相關資料,需要的朋友可以參考下
    2022-09-09
  • elementUI實現(xiàn)下拉選項加多選框的示例代碼

    elementUI實現(xiàn)下拉選項加多選框的示例代碼

    因產(chǎn)品需求和UI樣式調(diào)整,本文主要實現(xiàn)elementUI下拉選項加多選框的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue解決刷新頁面時會出現(xiàn)變量閃爍的問題

    vue解決刷新頁面時會出現(xiàn)變量閃爍的問題

    這篇文章主要介紹了vue解決刷新頁面時會出現(xiàn)變量閃爍的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論