如何在VueJS中存储和访问eventBus上的数据

时间:2017-07-28 01:11:53

标签: javascript vue.js event-bus

基本上我希望能够通过将dataBus设置为vue实例对象来访问某些集中数据,然后从不同的组件访问和调整这些数据。

我似乎无法通过我的组件中的数据访问,即使基本的字符串插值也没有呈现给DOM。

  export const dataBus = new Vue({
    data: {
      numQuotes: 4,
      stringVar: 'Hellow There'
    }
  });

我还尝试将数据设置为函数data()的返回。但由于我的数据总线是一个真正的vue实例,我不认为这是正确的。 (我可能是错的)。以下是我导入dataBus并尝试输出数据的组件。

  <template>
    <div>
      <h1>Quotes Added</h1>
      <div id="trackerBar">
        <div id="trackerBarActual">
            <h2>{{numQuotes}}/10</h2>
        </div>
      </div>
    </div>

  </template>

  <script>
    import { dataBus } from '../main.js';

    export default{

    }
  </script>

我收到以下错误:属性或方法“numQuotes”未在实例上定义,但在呈现期间引用。确保在数据选项中声明反应数据属性。

我错过了一些明显的东西吗?甚至可以通过这种方式访问​​数据吗?或者我必须作为方法访问它?

1 个答案:

答案 0 :(得分:1)

您错过了为组件指定data的部分。尝试

<script>
import { dataBus } from '../main.js';

export default{
  data () {
    return dataBus.$data
  }
}
</script>

你应该明确考虑Vuex进行国家管理。