【问题标题】:Is it possible to not calculate computed property before "ready" in Vuejs?在Vuejs中“准备好”之前是否可以不计算计算属性?
【发布时间】:2016-06-15 09:54:35
【问题描述】:

我在 Vue.js 中有一个 computed 属性,它依赖于来自 AJAX 调用的另一个值。在ready 方法完成之前,是否可以不计算computed 属性?总的来说一切正常,但控制台中的错误很烦人。

【问题讨论】:

  • 创建一个设置为 false 的布尔数据值,该值在准备就绪时设置为 true,并将计算的代码放在 if 中,条件是准备标志为 true

标签: javascript vue.js


【解决方案1】:

你可以试试这样的:

new Vue({
  el: '#demo',
  data: {
    numbers: []
  },
  ready () {
    // simulate an ajax call
    setTimeout(() => {
      this.numbers = [1, 2, 3, 4, 5]
    }, 2000)
  },
  computed: {
    sum () {
      // before the ajax response, returns 0
      if (this.numbers.length === 0) {
        return 0
      }
      // after the ajax response, returns the sum
      return this.numbers.reduce((prev, curr) => {
        return prev + curr;
      })
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.24/vue.min.js"></script>

<div id="demo">
  {{ sum }}
</div>

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 2021-10-10
    • 2017-08-23
    • 2020-02-05
    • 1970-01-01
    • 2017-08-08
    • 2021-05-16
    • 1970-01-01
    • 2018-02-21
    相关资源
    最近更新 更多