在调用完成之前,如何停止渲染vue组件

时间:2018-05-29 14:53:37

标签: vue.js vuejs2 vue-component

我用谷歌搜索了这个,但我找不到任何具体的解决方案。基本上我有一个依赖于init调用的vue组件,我希望它在调用完成之前停止渲染,此时我希望组件呈现。看似简单,但除非我遗漏了一些东西,否则找不到任何生命周期方法。

2 个答案:

答案 0 :(得分:5)

您可以将v-if用于此目的

<template>
    <div v-if="loaded"></div>
</template>

<script>
    export default {
        name: 'TestComponent',
        data: function () {
            return {
                loaded: false
            }
        },
        created() {
          callExternalServices().then(() => {
             this.loaded = true
          })
        }
    }
</script>

它将呈现一个空组件,直到loaded == true

答案 1 :(得分:0)

基本上,您在createdmounted生命周期方法中进行初始化调用,并使用调用的响应初始化data对象。如果在调用期间没有更改数据,则没有理由让vue呈现任何内容。

也许你可以提供一个能够准确显示你问题的jsfiddle。