在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 如何控制vue不渲染data中的初始值?

如何控制vue不渲染data中的初始值?

按照國(guó)際慣例,我首先 new 了一個(gè) Vue 實(shí)例

let vm = new Vue({
    
    data: {
        name: 'xxx'
    },
    
    methods: {
        getData(){
            let that = this;
            $.ajax({
                ...,
                success: function(res){
                    that.name = res;
                }
            });
        }
    },
    
    mounted(){
        this.getData();
    }
});

如上,在 data 中定義了一個(gè)變量 name, 將獲取數(shù)據(jù)的函數(shù)掛載在 mounted 中,用異步返回的值去變更 name。 ok,現(xiàn)在將 name渲染在頁(yè)面上:

<span>{{ name }}</span>

現(xiàn)在的問(wèn)題是,頁(yè)面上會(huì)快速顯示 name 的初始值 'xxx',隨后才更新為異步獲得的數(shù)據(jù),很影響體驗(yàn)
有沒(méi)有方法可以不渲染初始值?(只展示異步獲得的數(shù)據(jù))

補(bǔ)充:設(shè)置初始值為空依然會(huì)渲染在頁(yè)面上,撐開(kāi)父元素
比如,渲染結(jié)構(gòu)如下:

<span>({{ name }})</span>
回答
編輯回答
冷溫柔

1.你不需要顯示初始值,你寫(xiě)他干啥?你直接寫(xiě)空字符串不就行了!
2.你可以使用v-show v-if 去控制。
3.你的意思是要一個(gè)默認(rèn)值嗎?你可以默認(rèn)值是‘’,然后 {{name.length > 0 ? name : 'default'}}

2017年11月5日 14:58
編輯回答
枕邊人

name:null
或者
name:""

2018年5月17日 04:27
編輯回答
糖果果

你可以把初始值復(fù)制為空字符串'',然后用v-if或者v-show根據(jù)name是否為空來(lái)判斷是否需要渲染<span>{{ name }}</span>就可以了。要是覺(jué)得突然出現(xiàn)的有點(diǎn)突兀,可以加過(guò)渡

2017年1月28日 05:24
編輯回答
夢(mèng)囈

你可以讓他不渲染啊,字符串初始化為空,模版那邊用v-if

2017年7月4日 04:41
編輯回答
何蘇葉

我也遇到了這樣的問(wèn)題。

有一個(gè)折衷的辦法。

在new Vue的時(shí)候不要掛載 el. 當(dāng)data獲得數(shù)據(jù)后 再用 vm.$mount("#app") 掛載。
這樣頁(yè)面就不會(huì)渲染了。

2018年3月23日 20:04
編輯回答
傲嬌范

方法1、name: null
方法2、name: ""
方法3、created(){ this.name=""; }

2018年7月1日 23:31
編輯回答
懶豬

朋友,試一下created中加載數(shù)據(jù),然后賦值給默認(rèn)屬性。

2018年7月18日 14:09
編輯回答
冷溫柔

用 v-cloak
v-cloak

2018年5月28日 19:56