javascript - VueJS if/else : the else loads first, 然后 if 加载

标签 javascript vuejs2

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

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

这是我的代码的精简版:

HTML

<div v-if="count !== 0">Items are in the store, here they are!</div>
<div v-else>Sorry no items in the store.</div>

JS

mounted() {
  // Checks the location and gets items from server.
  if (this.location) {
    this.getItemsForHomeView();
  }
}

我找到了这个:Understanding Vue.js Lifecycle Hooks但它没有帮助,因为当我尝试将函数从 mounted() 移到任何早期的函数中时,比如 beforeCreate()created ()beforeMount() 我得到相同的结果。

最佳答案

除了在数据解析后处理空项目计数之外,您还需要处理没有数据要计数的情况。你没有提到使用 Vue Router,但是 this discussion of handling async data仍然适用:您可以使用 beforeMountbeforeRouteEnter Hook 让异步获取完全阻止组件呈现,或者将所有项目列表标记包装在另一个条件中,它仅在您的数据被获取后呈现,并且诸如 isLoaded(本地状态)设置为 true。

关于javascript - VueJS if/else : the else loads first, 然后 if 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46734736/

相关文章:

javascript - 如何将搜索查询框合并到 Vue.js 中的 api 调用中

javascript - 如何在 vuex 商店中使用 vue-resource ($http) 和 vue-router ($route)?

javascript - 如何使用 Vue.js 在单击时更新特定的子元素?

javascript - 对象不打印/返回信息到 HTML(使用 jquery .hover())?

javascript - 如何在按下按钮时调用单击 JavaScript 事件?

c# - 服务器标记格式不正确 - 超链接数据绑定(bind)

javascript - 简单的 Vuejs 验证代码无法按预期工作?

javascript - 在 JavaScript 中将时间戳转换为毫秒

javascript - 在使用开发工具检查之前,图像 slider 不会显示

vue.js - Vuex mapstate 对象未定义和 "[vuex] unknown mutation type: "