asyncData, fetch, plugins, middleware and nuxtServerInit. 都可以访问 context对象
function (context) {
// Universal keys
const {
app,
store,
route,
params, // Alias of route.params.
query, // Alias of route.query.
env,
isDev,
isHMR,
/* 重定向
redirect(302, '/login')
redirect({ name: 'slug', params: { slug: mySlug } })
redirect('https://vuejs.org')
*/
redirect,
error, // error(params)。本params应具有的特性statusCode和message。
$config
} = context
// Server-side
if (process.server) {
// 使用此方法更新__NUXT__客户端呈现的变量,使用fn调用(可以是异步的){ Components, nuxtState },请参见示例。
const { req, res, beforeNuxtRender } = context
}
// Client-side
if (process.client) {
// nuxtState Nuxt 状态,对于用于beforeNuxtRender在水化之前在客户端获取 nuxt 状态的插件很有用。仅在universal模式下可用。
// from https://router.vuejs.org/api/#the-route-object
const { from, nuxtState } = context
}
}
<!-- beforeNuxtRender 示例 -->
<template>
<h1>Special state in `window.__NUXT__`</h1>
</template>
<script>
export default {
fetch ({ isServer, beforeNuxtRender }) {
if (isServer) {
beforeNuxtRender(({ nuxtState }) => {
nuxtState.test = true
})
}
}
}
</script>