NUXT:使用 async fetch 作为 mixin,如何访问页面数据以进行覆盖

rad*_*tic 5 javascript vue.js vuex nuxt.js

我有一个一直在页面中使用的标头组件,由于它们在页面更改时被破坏,我决定将组件向上移动到布局中,以便在路线更改期间,它会持续存在(并且我可以相应地进行动画/转换) )。我正在使用 VueX 更新标头的内容(图像、副本等)。

现在,我在所有页面中使用异步获取来对商店进行适当的调用(以更新或隐藏标头)。

我希望最终将提取移动到 mixin 中并将其导入到每个页面,而不是手动将其放置在每个页面中。问题是,我想在调用之前使用 mixin 检索一些页面特定数据。我总是可以在 mixin 中默认它,但是当涉及到从页面内覆盖时 - 我无法从 fetch() 访问页面 data() 或 asyncData() 。

在 fetch() 中访问页面特定数据的最佳方法是什么?

我的混音:

export default {
  data() {
     return {
        masthead: false
     }
  },
  async fetch({ state }) {
    await state.commit('masthead/UPDATE_MASTHEAD', this.masthead);
  }
}
Run Code Online (Sandbox Code Playgroud)

在页面中:从“~/mixins/masthead”导入标头

export default {
  name: 'homepage',
  mixins: [masthead]
  data() {
     // Why can't I access this in fetch
     return {
       masthead: true
     };
  },
  asyncData() {
     // Why can't I access this in fetch?
     return {
       masthead: true
     };
  },
Run Code Online (Sandbox Code Playgroud)

谢谢!