1

它在开发模式下工作,但不能构建:'ReferenceError: window is not defined'

我明白这是 SSR 支持的问题,虽然它说它支持它

我尝试实现一些类似的集成方法,如下所示:

https://gridsome.org/docs/assets-scripts/#without-ssr-support

在 Gridsome 中导入 Vue-Navigation-Bar

我在 main.js 和我的 template.vue 文件中尝试了很多方法,但我无法理解完美调整解决方案的逻辑。

我最后的开发方法:

在我的 template.vue 文件中:

<section id="cover"></section>

<ClientOnly><p class="text-light">Text <a :href="href" class="text-light under" v-smooth-scroll="{ duration: 1000, updateHistory: false }">click here</a></p></ClientOnly>

<script>
  import Vue from 'vue'
  import vueSmoothScroll from 'vue2-smooth-scroll'
  Vue.use(vueSmoothScroll)
</script>

还尝试将“容器”选项设置为“#app”或“#body”添加到正文中,但即使在开发中也不起作用。

4

1 回答 1

0

好的,我可以在这里找到它:

https://github.com/gridsome/gridsome/issues/180#issuecomment-513550238

template.vue文件中不需要<ClientOnly></ClienteOnly>标签

main.js中,我进行了以下更改:

//import vueSmoothScroll from 'vue2-smooth-scroll'
//Vue.use(vueSmoothScroll);

export default function (Vue, { router, head, isClient }) {
  ...
  if (process.isClient) {
    const vueSmoothScroll = require('vue2-smooth-scroll').default;
    Vue.use(vueSmoothScroll);
  }
}
于 2020-04-05T19:09:23.557 回答