当前位置: 首页 > 知识库问答 >
问题:

试图让vue.js有条件地渲染基于创建的方法()

吴品
2023-03-14

我在我的创建的方法中有一个调用,它有一个等待。我想知道调用的结果是否已加载,以便有条件地显示/隐藏DOM中的内容。现在看起来DOM是在该方法完成之前呈现的。但是我认为created中的方法是在DOM呈现之前调用的?

共有1个答案

司寇阳曦
2023-03-14

假设创建的钩子在组件挂载之前运行是正确的。但是,生命周期挂钩并不等待异步调用完成。如果要等待调用完成并加载数据,可以使用一个布尔值,在加载数据时将其设置为true。

您的模板:

<div v-if='dataLoaded'>Now you can see me.</div>

在你的vue instace

export default {
  data () {
    return {
      dataLoaded: false
    }
  },
  created () {
    loadMyData().then(data => {
      // do awesome things with data
      this.dataLoaded = true
    })
  }
}

通过这种方式,您可以隐藏您的内容,直到该调用得到解决。处理ajax响应时请注意上下文。您需要将此作为原始vue实例的引用,以便正确设置数据。箭头函数可以很好地实现这一点。

 类似资料:
  • 本文向大家介绍怎样有条件地渲染组件?相关面试题,主要包含被问及怎样有条件地渲染组件?时的应答技巧和注意事项,需要的朋友参考一下 or

  • 我试图为数据集创建多水平条形图。这些数据涉及跑步比赛的比赛时间。 Dataframe有以下列:名称、年龄组、完成时间、完成地点、家乡。下面是示例数据。 我想创建一个类似下图的条形图。每个年龄组将有一个条形图,最快的跑步者在图表的底部,跑步者的名字与城市和次数跑了比赛低于他们的名字。 我需要一个for循环还是一个简单的groupby工作?每个年龄组的数量和大小可以根据种族动态变化,因此它不是一个常数

  • 问题内容: 我正在尝试使用angular js将css动态添加到我的html头中。这是示例代码 此代码可以正常工作,但是当浏览器加载页面时,它尝试使用原始的angularjs模板获取CSS资源,并且在Firebug的网络标签中看到“ 404 not found error”。 页面完全加载后,它将替换模板值并加载适当的CSS。 有没有一种方法可以避免404错误并在angularjs处理后使其加载C

  • 在React中你可以封装任意内容的用户界面Component,只要你有需要的话!然后,你可以在渲染这些组件到dom中的时候,根据需要,选择其中的一部分进行渲染,这个取决你的组件state。 在react中,使用条件渲染跟你在javascript中使用条件语句是一样的,你可以使用操作符if或者条件语句等语法有条件地根据当前的state渲染Elements,最后再更新dom以显示符合当前element

  • Mpx中的条件渲染与原生小程序中完全一致,详情可以查看这里 简单示例如下: <template> <view class="container"> <!-- 通过 wx:if 的语法来控制需要渲染的元素 --> <view wx:if="{{ score > 90 }}"> A </view> <view wx:elif="{{ score > 60 }}"> B </

  • 我有一个这样的数据集 我想创建列(visit_no)。每当间隙大于1时,我们需要在接下来的行中将visit_no值增加1,直到我们找到另一个值,它将保持不变 这是数据框架