【问题标题】:Window is not defined, Vue smooth scroll - Nuxt.js窗口未定义,Vue 平滑滚动 - Nuxt.js
【发布时间】:2020-04-26 04:57:47
【问题描述】:

我正在尝试将 vue 平滑滚动添加到我的 nuxt.js 项目中,并且收到“窗口未定义错误”。

我的步骤是:

yarn add vue2-smooth-scroll

在vue文件中:

import Vue from 'vue';
import vueSmoothScroll from 'vue2-smooth-scroll';

Vue.use(vueSmoothScroll);

【问题讨论】:

    标签: javascript html css vue.js nuxt.js


    【解决方案1】:

    我不知道 vue2-smooth-scroll 的具体情况,但是当 vue 依赖项不支持 SSR 时,您可以在 nuxt.config.js 中禁用它

    如果你有~/plugins/smooth-scroll.js

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

    你可以把这个放在nuxt.config.js

    // ...
    plugins: [
        { src: '~/plugins/smooth-scroll', ssr: false }
      ],
    // ...
    

    【讨论】:

      【解决方案2】:

      如果您只在客户端需要它,这对于像这样的库来说是有意义的,那么还有另一种方法可以在 nuxt.config.js 中注册插件:

      plugins: [
          { src: '~/plugins/smooth-scroll', mode: 'client' }
      ],
      

      【讨论】:

      • 酷!非常感激。你知道使用模式是否有警告:'client' vs using ssr: false???这个项目不是 SPA,所以我想知道只渲染客户端会有什么缺点(如果有的话)。
      • 刚刚仔细检查了文档,ssr: falsemode: client 相同。如果我理解正确,ssr 自 2.5 起似乎已被弃用。我不认为这有缺点,它只取决于您的插件是否可以在客户端和服务器上运行。
      猜你喜欢
      • 2022-11-11
      • 2021-01-15
      • 2019-07-25
      • 1970-01-01
      • 2021-09-08
      • 2019-02-15
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      相关资源
      最近更新 更多