Nuxt 提供了 <NuxtClientFallback> 组件,当其子组件在 SSR(服务端渲染)中触发错误时,该组件会改为在客户端渲染其内容。
<template>
<div>
<Sidebar />
<!-- 该组件将会在客户端渲染 -->
<NuxtClientFallback fallback-tag="span">
<Comments />
<BrokeInSSR />
</NuxtClientFallback>
</div>
</template>
@ssr-error:当子组件在 SSR 中触发错误时发出该事件。注意该事件仅在服务端触发。<template>
<NuxtClientFallback @ssr-error="logSomeError">
<!-- ... -->
</NuxtClientFallback>
</template>
placeholderTag | fallbackTag:指定在服务端渲染失败时用作替代的标签。
stringdivplaceholder | fallback:指定服务端渲染失败时显示的替代内容。
stringkeepFallback:如果服务端渲染失败,是否保留替代内容。
booleanfalse<template>
<!-- 如果默认插槽在服务端渲染失败,则使用 <span>Hello world</span> 渲染 -->
<NuxtClientFallback
fallback-tag="span"
fallback="Hello world"
>
<BrokeInSSR />
</NuxtClientFallback>
</template>
#fallback:指定当默认插槽在服务端渲染失败时显示的内容。<template>
<NuxtClientFallback>
<!-- ... -->
<template #fallback>
<!-- 如果默认插槽在 SSR 中渲染失败,该内容会在服务端渲染 -->
<p>Hello world</p>
</template>
</NuxtClientFallback>
</template>