首页 > 解决方案 > 我可以在 Vue data() 函数中创建新对象吗?

问题描述

我正在new Audio()Vue 组件的data() { ... }函数中创建一个对象,但我担心这是否会不必要地创建更多的音频对象。

我似乎无法找到何时或如何调用 data() 函数,但我也找不到任何在数据函数中创建新对象的示例。

在里面创建新对象可以data()吗?或者我应该把这些初始化留给created()函数吗?

标签: vue.jsvue-component

解决方案


阅读有关 data() 的文档:https ://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function

组件的数据选项必须是一个函数,以便每个实例都可以维护返回的数据对象的独立副本

这是正确的做法。

您的新对象将像这样被实例化:

data() {
  // new object returned
  return {
    audio: new Audio()
  }
}

如果您想拥有一个全局对象以避免多个实例audio,请考虑将其附加到全局 Vue 实例或根据您的需要使用 Vuex。


推荐阅读