1 Star 0 Fork 0

LW / nuxt3_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

nuxt3文档

英文文档 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的值变化,就会重新发送请求

useFetch

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>
}

useAsyncData

// 两个函数的重载,可以传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

本地部署(nodejs部署)

执行 yarn build 打包 执行node .output/server/index.mjs启动打包的服务 访问:本地的3000端口

空文件

简介

学习nuxt3 展开 收起
TypeScript 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/gitee_lw/nuxt3_study.git
git@gitee.com:gitee_lw/nuxt3_study.git
gitee_lw
nuxt3_study
nuxt3_study
master

搜索帮助