代码拉取完成,页面将自动刷新
英文文档 https://nuxt.com/docs/guide 中文文档 http://57code.gitee.io/nuxt3-docs-zh/getting-started/installation.html
中文网档很不全面,还有错误的东西,强烈建议参考英文文档,当然如何中文文档后续有更新过来那也是可以参中文文档的
统一把请求交给 ~/server
处理,可以把~/server
当作是代理服务器,客户端只需要向~/server
发送请求即可,
~server
向目标服务器去发请求,相对于客户端渲染框架,nuxt是多处理了一层代理服务器的逻辑
登录时根据权限动态注册路由和渲染菜单,相关逻辑在~/composables/useSetRoutes
使用useFetch从~server中请求过来。如果需要业务处理数据,可以使用useAsyncData处理
// 内置的监视选项允许在检测到任何更改时自动重新运行fetcher功能。
const page = ref(1)
const { data: posts } = await useAsyncData(
'posts',
() => $fetch('https://fakeApi.com/posts', {
params: {
page: page.value
}
}), {
watch: [page]
}
)
// 一旦page的值变化,就会重新发送请求
function useFetch(
url: string | Request | Ref<string | Request> | () => string | Request,
options?: UseFetchOptions<DataT>
): Promise<AsyncData<DataT>>
type UseFetchOptions = {
key?: string
method?: string
query?: SearchParams
params?: SearchParams
body?: RequestInit['body'] | Record<string, any>
headers?: Record<string, string> | [key: string, value: string][] | Headers
baseURL?: string
server?: boolean
lazy?: boolean
immediate?: boolean
default?: () => DataT
transform?: (input: DataT) => DataT
pick?: string[]
watch?: WatchSource[]
}
type AsyncData<DataT> = {
data: Ref<DataT>
pending: Ref<boolean>
refresh: (opts?: { dedupe?: boolean }) => Promise<void>
execute: () => Promise<void>
error: Ref<Error | boolean>
}
// 两个函数的重载,可以传key,也可以不传
function useAsyncData(
handler: (nuxtApp?: NuxtApp) => Promise<DataT>,
options?: AsyncDataOptions<DataT>
): AsyncData<DataT>
function useAsyncData(
key: string,
handler: (nuxtApp?: NuxtApp) => Promise<DataT>,
options?: AsyncDataOptions<DataT>
): Promise<AsyncData<DataT>>
type AsyncDataOptions<DataT> = {
server?: boolean
lazy?: boolean
default?: () => DataT | Ref<DataT> | null
transform?: (input: DataT) => DataT
pick?: string[]
watch?: WatchSource[]
immediate?: boolean
}
interface RefreshOptions {
dedupe?: boolean
}
type AsyncData<DataT, ErrorT> = {
data: Ref<DataT | null>
pending: Ref<boolean>
execute: () => Promise<void>
refresh: (opts?: RefreshOptions) => Promise<void>
error: Ref<ErrorT | null>
}
参考 ~/composables/readme.md
执行 yarn build
打包
执行node .output/server/index.mjs
启动打包的服务
访问:本地的3000端口
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。