通过nuxt-link转到子页面时,如何防止调用父fetch()挂钩?是虫子吗?

时间:2020-04-27 08:47:06

标签: fetch hook parent-child nuxt.js

我对父fetch()挂钩有问题,该挂钩在通过nuxt-link进入子页面期间被调用。如何解决这个问题?也许是nuxt.js错误?为了实现父级->子级结构,我根据nuxt.js文档中给出的模式设置了项目:
-parent.vue
-父母
--child1.vue
--child2.vue

例如,通过nuxt-link进入Child1:<nuxt-link to="/parent/child1">Child1</nuxt-link>会导致在父对象中调用fetch()钩子。

我认为很多人都有这个问题。预先感谢您为解决此问题所提供的帮助。

2 个答案:

答案 0 :(得分:0)

看看Vue自定义选项合并策略https://vuejs.org/v2/guide/mixins.html#Custom-Option-Merge-Strategies

〜/ plugins / custom-merge-fetch.js

import Vue from 'vue'

Vue.config.optionMergeStrategies.fetch = function (childFetch, parentFetch) {
  // your logic
}

在nuxt.config.js中

plugins: [
  '~/plugins/custom-merge-fetch',
],

答案 1 :(得分:0)

我已经找到了解决方案,这很简单。在我的情况下,我忘记为nuxt-child添加默认页面(在父文件夹中创建index.vue文件),如下所示:
-parent.vue
-父母
--index.vue
--child1.vue
--child2.vue

执行此操作后,问题已解决,并且父fetch()挂钩不再调用。以前,默认情况下不会为子页面生成DOM结构(未创建index.vue文件),这会导致在通过nuxt-link进入子页面时刷新父页面。