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

鍍金池/ 問答/HTML/ 如何在vue里實(shí)現(xiàn)同步阻塞請(qǐng)求,請(qǐng)求完成之前不加載頁面或組件?

如何在vue里實(shí)現(xiàn)同步阻塞請(qǐng)求,請(qǐng)求完成之前不加載頁面或組件?

雖然說起來挺荒唐的,但是目前的確需要一個(gè)同步阻塞請(qǐng)求來阻止頁面渲染。

理由是這樣的的,我在根組件里發(fā)了個(gè)請(qǐng)求獲取用戶屬性,并且props到各個(gè)子組件中。

    data() {
        return {
            userType: null,
        };
    },
    beforeMount() {
        this.getUserInfo();
    },
    methods: {
        getUserInfo() {
                    this.$http({
                        url: '/api/getUserInfo',
                        method: 'get',
                    }).then(res => {
                        this.userType = res.data.userType;
                    }).catch(err => {
                        console.log(err);
                    });
                },
}

子組件需要根據(jù)這個(gè)屬性渲染 iview 表格和一些 v-if 控制的 Button,這個(gè)表格是在 beforemount 時(shí)根據(jù) userType 渲染的。

export default {
    props: [
        'userType',
    ],
    
    ......
    methods: {
        addButtonToColumns() {}

    ......
    
    beforeMount() {
        this.addButtonToColumns();
    },
    
    ......
        

現(xiàn)在有這樣的問題,可能用戶在頁面剛載入時(shí)就去點(diǎn)擊鏈接跳轉(zhuǎn)到子組件頁面,但是 userType 屬性還沒請(qǐng)求下來,這樣子組件顯示的內(nèi)容可能就不準(zhǔn)確。雖然props更新了多數(shù)都會(huì)跟著更新,但是iview的tables columns沒法重新載入,表格格式就不對(duì)了。

userType對(duì)所有組件都很重要,即使是完全阻塞整個(gè)頁面在載入都可以。

請(qǐng)問是否有辦法實(shí)現(xiàn)在我根組件完成 getUserInfo() 之前都不渲染頁面?

回答
編輯回答
悶油瓶

getUserInfo函數(shù)數(shù)據(jù)請(qǐng)求下來,設(shè)置開關(guān)flag=true,頁面最外層box v-if="flag",
flag默認(rèn)false

2018年7月10日 22:47
編輯回答
你的瞳

你可以使用組件路由守衛(wèi)beforeRouteEnter,請(qǐng)求到數(shù)據(jù)之后再調(diào)用next跳轉(zhuǎn)路由

2017年5月14日 21:49
編輯回答
祉小皓

加一個(gè)loading浮層動(dòng)畫吧,請(qǐng)求完成后隱藏。

2017年1月28日 00:09