Javascript VueJS if/else:首先加载else,然后加载if

Javascript VueJS if/else:首先加载else,然后加载if,javascript,vuejs2,Javascript,Vuejs2,问题是: VueJS在加载“if”条件之前简要显示“else”条件。这会给用户带来意想不到的体验,因为当“如果”是真的时,他们不应该看到“其他”。如果“如果”是真的,他们应该只看到“如果” 详情如下: 我有一个定制的在线商店和许多不同的市场。我从我的服务器返回一个项目计数,如果该数字为零,那么我说该国家没有项目,换句话说,该国家尚未对该商店开放。如果数字不是零,则不显示消息,而是实际显示项目 下面是我的代码的精简版本: HTML 我发现了这一点:但它没有帮助,因为当我尝试将函数从mounted(

问题是: VueJS在加载“if”条件之前简要显示“else”条件。这会给用户带来意想不到的体验,因为当“如果”是真的时,他们不应该看到“其他”。如果“如果”是真的,他们应该只看到“如果”

详情如下: 我有一个定制的在线商店和许多不同的市场。我从我的服务器返回一个项目计数,如果该数字为零,那么我说该国家没有项目,换句话说,该国家尚未对该商店开放。如果数字不是零,则不显示消息,而是实际显示项目

下面是我的代码的精简版本:

HTML


我发现了这一点:但它没有帮助,因为当我尝试将函数从
mounted()
移动到任何早期的函数中,例如
beforeCreate()
created()
beforeMount()
时,我得到了相同的结果。

除了在数据解析后处理空项计数之外,您需要处理尚未统计数据的情况。您没有提到使用Vue路由器,但仍然适用:您可以使用
beforeMount
beforewouteenter
钩子让异步获取阻止组件渲染,或者将所有项目列表标记包装在另一个条件中,该条件仅在获取数据后渲染,类似于
isLoaded
(本地状态)的内容设置为true。

您的数据模型在哪里?数据模型在存储区中。您需要使用
道具将其带进来吗。显示整个脚本部分
<div v-if="count !== 0">Items are in the store, here they are!</div>
<div v-else>Sorry no items in the store.</div>
mounted() {
  // Checks the location and gets items from server.
  if (this.location) {
    this.getItemsForHomeView();
  }
}