nuxt3是由vue官方认可的vue3 SSR渲染解决方案的框架。本文主要记录使用该框架时遇到的一些疑问和问题,并记录下来。文章的大部分内容都是个人观点,不一定完全正确。同时,这不是nuxt如果你想系统地学习或进一步理解这个框架,你可以移动教程nuxt3官网查看文档。「链接」
1、nuxt中页路由是怎样的?(1) nux三页路由是基础pages目录和目录vue自动分析文件,如:
pages|---index.vue|---user|---|---[id].vue|---type|---|---type_1.vue|---|---type_2.vue
分析的路由应为:
indexuser/123type/type_1type/type_2
(2)pages目录一般位于项目根目录下
(3)也可以配置文件nuxt.config.ts中的dir.pages来指定pages文件夹,如:
import{ defineNuxtConfig }from 'nuxt'export default defineNuxtConfig({dir:{ pages: './web' }})
(4)也通过配置文件pages选项关闭nuxt自动生成路由的机制,使用vue-router
import{ defineNuxtConfig }from 'nuxt'export default defineNuxtConfig( ages: false})
(5)路由跳转:
navigateTo (route: string | Route,{ redirectCode = 302, replace = false })
如果你用过或习惯了,nuxt在之前的版本中,一定要记住,他的服务端代码有一个启动服务器的过程server/index.js中。
如果你用过或习惯了,nuxt在之前的版本中,一定要记住,他的服务端代码有一个启动服务器的过程server/index.js中。但是nuxt3中默认生成的项目不带server我们需要使用文件夹server我们可以在功能时创建文件夹。另外,我们创造这个server也不需要关心整个server启动过程。nuxt3的server机制是基于nitro我们只需要关心我们需要什么接口,然后从server导出我们需要的接口,像这样:
(1)创建server文件夹
(2)创建test.jsserver|---api|---|---test.get.js
(3)server必须导出一个接口defineEventHandler事件,事件的回调必须返回一个值export default defineEventHandler(event =>{return 'test'})
(4)在客户端发起请求$fetch('/api/test',{ method:'get' })
3、nuxt3中怎样使用node相关API?
在node中有很多API使用时需要通过require引入的,但nuxt3.不支持这种引入方式,它支持import介绍方法。在高版本中引入这种方node默认支持。可以将nuxt项目建成后,你用的node版本必须支持这种方式的引入,所以放心大胆使用import可以引入。在使用第三方插件时,需要考虑插件是否支持import引入的放。import mongoose from 'mongoose'
4、nuxt3中elementplus是怎么用的?
element-ui应该时vue使用最广泛的框架UI库。vue3只能使用elementPlus,它是element-ui对于vue3支持的UI库。
(1)创建项目根目录plugins文件夹;
(2)在文件夹下创建element-plus.js文件,如下:import{ defineNuxtPlugin }from '#app'import ElementPlus from 'element-plus/dist/index.full.mjs'export default defineNuxtPlugin(nuxtApp =>{ nuxtApp.vueApp.use(ElementPlus)})
(3)在app.vue文件中引入elementPlus的样式<style>...@import 'element-plus/dist/index.css';...</style>
(4)包装配置,nuxt.config.ts修改或添加以下代码...const lifecycle = process.env.npm_lifecycle_event;...export default defineNuxtConfig({...build:{... transpile: lifecycle === "build" ?["element-plus"]:[],... }...})...
5、nuxt3.如何注册组件?["element-plus"]:[],... }...})...
5、nuxt3.如何注册组件?
(1)创建项目根目录components文件夹,添加文件以创建您的目录或vue文件,nuxt全局组件将根据您文件的目录结构和名称自动生成。
| components/--| base/----| foo/------| Button.vue(2)使用组件
<BaseFooButton />