Nuxt 3 - SSR 通过插件提供商返回 500

问题描述 投票:0回答:1

我是 Nuxt 新手,我尝试了解 SSR 和 CSR 中的插件。

我遵循文档中的 helloWorld 测试。

CSR 完美配合(/plugins/hello.ts 或 /plugins/hello.client.ts)

但是使用SSR(/plugins/hello.server.ts)我有:

[GET] 500 $setup.$hello 不是函数

有人可以解释我为什么它不适用于服务器端渲染吗?

如果我删除 .vue 文件中的设置,则会出现此错误:

500 - [nuxt] 需要访问 Nuxt 实例的可组合项在插件、Nuxt 挂钩、Nuxt 中间件或 Vue 设置函数之外调用。

插件/hello.(客户端/服务器/'').ts

export default defineNuxtPlugin(() => {
    return {
      provide: {
        hello: (msg: string) => `Hello ${msg}!`
      }
    }
  })
  

pages/hello.vue

<script setup lang="ts">
const { $hello } = useNuxtApp()
</script>

<template>
  <div>
    {{ $hello('world') }}
  </div>
</template>

文档 (https://nuxt.com/docs/guide/directory-struct/plugins

plugins server-side-rendering nuxt3.js
1个回答
0
投票

如果我删除 .vue 文件中的设置,则会出现此错误

这里的

setup
到底是什么意思?

使用最新的 Nuxt 版本,以下内容似乎可以正常工作。 我刚刚在 Stakblitz 上尝试过。

© www.soinside.com 2019 - 2024. All rights reserved.