2

我创建了一个注入 noty ( https://ned.im/noty/#/ ) 的插件,所以我可以在全球范围内使用它,它看起来像这样:

export default ({ app }, inject) => {

    const notify = function (options = {}) {
        if (process.client) {
            new Noty(options).show();
        }
    }

    app.$notify = notify;
    inject('notify', notify);

}

此插件仅在客户端显示通知。在服务器端没有出现通知,因为它只能在浏览器中显示。我有一个包含产品详细信息的页面,并且我正在以 asyncData 方法接收数据。当找不到产品时,我想显示一个带有正确消息的通知并将用户重定向到产品列表页面。当我在客户端更改路线时,一切都很棒。但是,在服务器端发生的第一个页面加载(例如,我在浏览器中手动更改了一个 url)时,不会出现通知,只有重定向有效。我的问题是:在这种情况下如何显示通知?如何在 SSR 之后在浏览器中创建一个通知,或者我的问题的最佳其他解决方案是什么?

在客户端已经渲染之后(在服务器端渲染之后)有什么方法可以运行一些代码?

4

3 回答 3

0

好的,我找到了一个模块:https ://github.com/potato4d/nuxt-client-init-module

于 2018-08-19T17:19:28.547 回答
0

您可以为该插件禁用 ssr。

plugins: [
   ...,
   { src: '~plugins/yourplugin.js', ssr: false }
]
于 2018-08-17T15:36:08.800 回答
0

不可能知道(当我回答时 nuxt <= 2.14.0),但您可以结合客户端插件和客户端中间件来实现这一点,请查看此链接:

https://github.com/nuxt/nuxt.js/issues/2653#issuecomment-390588837

于 2020-08-24T09:30:09.487 回答