Vue 在计算数据之前先创建 Component

Vue creates Component before calculating data

我遇到了 vue 的问题。 我已经创建了一个图表,我可以用数据初始化它,但是当我按下其中一个复选框时没有任何反应,它会在一步后发生。

例如: 我按下复选框一:没有任何变化。 我按下复选框二:复选框一的数据被添加 我按下复选框一:添加一和二的数据 ...

我希望有人能帮助我。

谢谢:)

App.vue

<template>
   <div v-if="show"> 
      <div id="Chart">
          <Chart v-bind:chartData="this.chartData"/>                         
      </div>
   </div>
   <div>        
      <checkbox @click="changeGraph">Select Data 1</checkbox>
      <checkbox @click="changeGraph">Select Data 2</checkbox>
    </div>
</template>

export default {
   name: 'App', 
   components: {
       Chart,
   },
   data () {
      return {
         chartData: {};
      }
   },
   methods: {
      changeGraph() {
        // Filling chartData in here
      }
   },
   mounted: {
      // init chartData here
   }
}  



            

代替@click,使用@change

@click="changeGraph"

发生这种情况是因为对象对它没有先验的 属性 没有反应。为此,您可以使用 Vue 的 set 功能:

this.$set(object, property, value)

// or

import Vue from 'vue'
Vue.set(object, property, value)

这样 属性 的反应性就会起作用。

您可以阅读更多相关信息 here