Javascript 访问asyncData中的数据对象-Nuxt

Javascript 访问asyncData中的数据对象-Nuxt,javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,我想知道是否有办法将对象属性作为asyncData()返回的键来访问 我尝试访问数据对象属性,如下所示,但没有成功 async asyncData(){ let activity = await axios.get('data.json') return { bookmark_btn.status: activity.status} } 如前所述,由于asyncData是一种服务器呈现的方法,因此无法直接访问组件数据 以前的解决方案是可行的,但我不认为这是Nuxt的工作方式,而

我想知道是否有办法将对象属性作为asyncData()返回的键来访问

我尝试访问数据对象属性,如下所示,但没有成功

async asyncData(){
    let activity = await axios.get('data.json')
    return { bookmark_btn.status: activity.status}
}

如前所述,由于
asyncData
是一种服务器呈现的方法,因此无法直接访问组件
数据

以前的解决方案是可行的,但我不认为这是Nuxt的工作方式,而且它很复杂(使用第三方lib-Vuex并混淆上下文对象)

根据,加载客户端后,
异步数据
将合并到您的
数据
,这意味着您将有权访问页面的返回值对象


这意味着您可以在服务器端完成加载后直接使用它来更改页面的状态,因此您可以使用vue的反应性并直接使用它,或者使用您的页面
mounted
属性中的值,这是您的用例解决方案。

如前所述,因为
asyncData
是一种服务器呈现的方法,所以您不能直接访问组件
数据

以前的解决方案是可行的,但我不认为这是Nuxt的工作方式,而且它很复杂(使用第三方lib-Vuex并混淆上下文对象)

根据,加载客户端后,
异步数据
将合并到您的
数据
,这意味着您将有权访问页面的返回值对象


这意味着您可以在服务器端完成加载后直接使用它来更改页面的状态,因此您可以使用vue的反应性并直接使用它,或者使用页面
mounted
属性中的值,这是您的用例解决方案。

使用新的获取方法而不是异步数据存在于numxt>=2.12中。此获取方法可以具有数据属性

async fetch() {
    let activity = await axios.get('data.json')

    this.$set(this.bookmark_btn, 'status', activity.status)
}
在官方文件中查看更多信息

或者,若要使用旧的asyncData,请从组件中删除data(),因为asyncData将返回的内容将追加到data()中。所以你可以试试这个

  async asyncData() {
    let activity = await axios.get("data.json")
    return {
      bookmark_btn:{
        status: activity.status,
        loading: false
      }
    }
  }

使用新的获取方法,而不是Nuxt>=2.12中存在的异步数据。此获取方法可以具有数据属性

async fetch() {
    let activity = await axios.get('data.json')

    this.$set(this.bookmark_btn, 'status', activity.status)
}
在官方文件中查看更多信息

或者,若要使用旧的asyncData,请从组件中删除data(),因为asyncData将返回的内容将追加到data()中。所以你可以试试这个

  async asyncData() {
    let activity = await axios.get("data.json")
    return {
      bookmark_btn:{
        status: activity.status,
        loading: false
      }
    }
  }

在这种情况下,你的回答部分正确。因为我的架构和用例不支持fetch方法。实际上它是一个API,为了示例起见,我使用了data.jsony。在这种情况下,您的答案部分正确。因为我的架构和用例不支持fetch方法,实际上它是一个API,为了示例起见,我使用了data.json