鍍金池/ 問(wèn)答/HTML/ vue 進(jìn)入頁(yè)面展示問(wèn)題

vue 進(jìn)入頁(yè)面展示問(wèn)題

我現(xiàn)在遇到這樣一個(gè)問(wèn)題:

<template>
    <div id="test">
       <div v-if="list.length">
           //展示數(shù)據(jù)
        </div>
       <div v-if="!list.length">
        //沒(méi)有數(shù)據(jù)的 報(bào)空樣式    
    </div>
    </div>
</template>

...
<script>
    ...
    data(){
        return {
            list:[]
        }
    }
</script>

描述:

  • 現(xiàn)在list 初始賦值 是一個(gè)異步的行為 在mounted發(fā)生
  • 而以上這樣的寫法 默認(rèn)進(jìn)來(lái)就是顯示沒(méi)有數(shù)據(jù)的樣式,一旦數(shù)據(jù)發(fā)生的變更,頁(yè)面一閃,替換顯示數(shù)據(jù),給人感覺(jué)很不好,因?yàn)椴⒉皇菦](méi)有數(shù)據(jù)而是數(shù)據(jù)還沒(méi)傳遞過(guò)來(lái),我希望進(jìn)入頁(yè)面是空的 而不是上來(lái)就顯示沒(méi)有數(shù)據(jù)的樣式
  • 我是這樣解決的 我在 #test 上加上一個(gè) v-if=“false” 知道 初始異步請(qǐng)求結(jié)束才賦值為true,這樣保證了頁(yè)面剛進(jìn)來(lái)看到的不是沒(méi)有數(shù)據(jù)的樣式

q:大家是怎么處理這種情況,感覺(jué)這樣做是不是很多余,vue是不是提供了更好的解決方案或是大家有沒(méi)有更好的方案?

補(bǔ)充:另,現(xiàn)在進(jìn)入頁(yè)面的入口是導(dǎo)航里的一個(gè)鏈接, 如 @tony_gong 所說(shuō) ,進(jìn)入路由之前拉取數(shù)據(jù) ,如果后端服務(wù)稍微不給力,用戶得到的感知 豈不是 點(diǎn)鏈接沒(méi)有反應(yīng),是不是更不妥?

回答
編輯回答
風(fēng)畔

你可以加個(gè)loading圖標(biāo)

2018年3月1日 11:13
編輯回答
尐潴豬

你這個(gè)思路已經(jīng)很接近了,你加第三個(gè)狀態(tài)表示數(shù)據(jù)還沒(méi)來(lái)就行了。拿到數(shù)據(jù)后再切換有無(wú)

2017年9月21日 22:33
編輯回答
萌吟

沒(méi)有。從框架的角度來(lái)說(shuō),如果連空數(shù)據(jù)的設(shè)計(jì)都包含進(jìn)來(lái),無(wú)疑增加了各種負(fù)擔(dān),并且沒(méi)有什么收益。

不過(guò)細(xì)節(jié)上你可以使用 v-ifv-else。

2017年6月8日 11:33
編輯回答
蔚藍(lán)色

這是一種方案,其實(shí)還有另外一種方案就是進(jìn)去路由之前拉取數(shù)據(jù)

2017年5月17日 00:22