首页 > 其他分享 >Nuxt3-自定义路由配置以及使用自定义布局layout

Nuxt3-自定义路由配置以及使用自定义布局layout

时间:2024-04-03 13:55:50浏览次数:28  
标签:index vue layout 自定义 Nuxt3 router pages

一、不自定义路由下,如何使用自定义布局
1、根目录下 app.vue
<template>
  <div>
    <NuxtLayout>
      <NuxtPage />
    </NuxtLayout>
  </div>
</template>
2、layout 文件夹下新建文件 main.vue
<template>
  <div class="_app">
    主布局
    <slot></slot>
  </div>
</template>
<style scoped lang="scss">
._app{}
</style>
3、页面内使用自定义布局 pages 文件夹下 创建 mine.vue
// 第一种方式
<template>
  <div class="mine">
    个人中心5656
  </div>
</template>

<script setup lang='ts'>
definePageMeta({
  layout: 'main',
  index: 2, // main.vue 文件 传递参数
})
</script>

<style scoped lang='scss'>
</style>
// 第二种方式
<template>
  <NuxtLayout name="main">
    <div class="mine">
      个人中心5656
    </div>
  </NuxtLayout>
</template>

<script setup lang='ts'>
definePageMeta({
  layout: false, // 去除默认布局 
})
</script>

<style scoped lang='scss'>
</style>
二、自定义路由、及如何使用自定义布局
1、router.options.ts 方式自定义路由 (推荐)

根目录下创建 app 文件夹,app 文件夹下创建 router.options.ts 文件

// 页面内使用 definePageMeta({layout: 'main'}) 会失效
const reRouter = [
  {
    path: '/',
    name: 'Home',
    component: ()=> import('../pages/home/index.vue')
  }, {
    path: '/mine-a',
    name: 'Mine',
    component: ()=> import('../pages/mine/index.vue'),
    meta: {
      layout: 'main', // 通过此种方式使用 自定义布局
    }
  },
]
export default {
  routes:(_routes: any)=>[
    ...reRouter
  ]
}
2、pages:extend 方式自定义路由(该文件会失去热更新)

1)、根目录下创建 router 文件夹,router文件夹下创建 index.ts

// index.ts
import type { NuxtPage } from "nuxt/schema";
const path = require("path");

const resolve = (pagePath: any) => path.resolve(pagePath)

const routerList: NuxtPage[] = [
  {
    path: '/',
    name: 'Home',
    file: resolve('pages/home/index.vue')
  }, {
    path: '/mine',
    name: 'Mine',
    file: resolve('pages/mine/index.vue')
  },
]
export default {
  'pages:extend': (routes: any) => {
    routes.splice(0);
    routes.push(...(routerList as NuxtPage[]));
  }
};

2)、nuxt.config.ts 文件配置路由

import router from "./router/index";

export default defineNuxtConfig({
  hooks: {
    ...router
  }
})

3)、自定义布局

<template>
  <NuxtLayout name="main">
    <div class="mine">
      个人中心5656
    </div>
  </NuxtLayout>
</template>

<script setup lang='ts'>
definePageMeta({
  layout: 'main', 
})
</script>

<style scoped lang='scss'>
</style>

 

标签:index,vue,layout,自定义,Nuxt3,router,pages
From: https://www.cnblogs.com/WebMadman/p/18112524

相关文章

  • spring security 6.0.8(boot 3.0.13)自定义 filter 踩坑-已解决
    springboot3.0.13(3.1.10)springsecurity6.0.8(6.1.8)-- 官方文档:https://docs.spring.io/spring-security/reference/index.html写文时最新为6.2.3。  说明,先是用springboot3.1.10测试,失败,降低到3.0.13仍然失败。 开发建立了AppLoginFilter,实现了attemp......
  • nuxt3 useFetch 刷新或首次进入报错
    从其他页面跳转过来正常,但是刷新会报错<scriptlang="ts"setup>constpositionOption=ref([]);constinitData=()=>{useFetch('/api/getTagsByKey',{query:{tagKey:'position'......
  • grad_cam下的自定义模型获取热力图
    原文链接:https://blog.csdn.net/zxdd2018/article/details/1255053521.(多张图片)备注:gram_cam_1importosimportnumpyasnpimporttorchimportcv2importmatplotlib.pyplotaspltimporttorchvision.modelsasmodelsfromtorchvision.transformsimportCompose,N......
  • R语言layout函数处理可视化图像布局实战
     R语言layout函数处理可视化图像布局实战目录R语言layout函数处理可视化图像布局实战#基本语法#layout定义位置矩阵并可视化......
  • bottom tap新增一个自定义icon,点击弹出Modal
    我想实现的效果是这样的:    注意:Modal的背景还是其他的tab,并没有变化,等Modal消失后Screen还是原来的screen。Solution:   因为中间的自定义图标按钮需要有一部分在Tab中,所以还是把icon作为tab中的一个screen的,于是就借用:tabBarButton来实现,参考了一些文章,都是把M......
  • 按指定规则(自定义)拆分PDF文件
    #-*-coding:utf-8-*-'''创建文件夹:1.txt:为拆分规则文件名,(在文件夹中写入1-4try,就是把1-4截取下来放在文件夹为try.pdf的文件夹下)m.pdf:为拆分文件名称split.py为文件的名称'''fromPyPDF2importPdfReader,PdfWriter#PDF文件分割defsplit_pdf():  t......
  • Quill文档(三):构建自定义模块
    Quill作为编辑器的核心优势在于其丰富的API和强大的定制能力。当您在Quill的API之上实现功能时,将其组织为一个模块可能会很方便。为了本指南的目的,我们将逐步介绍一种构建单词计数器模块的方法,这是许多文字处理器中常见的功能。注意在内部,模块是Quill的许多功能的组织方......
  • EL虚拟化表格 用h函数自定义表头并且指定插槽
    第一次使用el-table-v2,需要实现点击表头弹框来展示数据,官方文档中只有tsx的写法,没有使用h函数的写法,因此记录一下先看下最终的效果以下是部分代码import{ElButton,ElRadio,ElTooltip,ElPopover }from'element-plus'; //columns是一个数组,里面的值为每一列的配置......
  • 【docker】Dockerfile自定义镜像
           ......
  • Higress 基于自定义插件访问 Redis
    作者:钰诚简介基于wasm机制,Higress提供了优秀的可扩展性,用户可以基于Go/C++/Rust编写wasm插件,自定义请求处理逻辑,满足用户的个性化需求,目前插件已经支持redis调用,使得用户能够编写有状态的插件,进一步提高了Higress的扩展能力。文档在插件中调用Redis[1]中提供了......