nuxt3-路由(二)

【路由进阶】页面中使用layout

修改默认layout

default.vue是nuxt默认的页面布局,此布局不用定义所有页面共享

  1. 更新目录结构创建layouts文件夹和default.vue
    在这里插入图片描述
  2. 更新app.vue文件引入NuxtLayout
<template>
  <NuxtLayout>
    <div>
      <NuxtLink to="/home">Home</NuxtLink>
    </div>
    <div>
      <NuxtLink to="/product">productlist</NuxtLink>
    </div>
    <div>
      <NuxtLink to="/product/detail/1">productdetail-1</NuxtLink>
    </div>
    <div>
      <NuxtLink to="/mine">mine</NuxtLink>
    </div>
    <div>
      <NuxtLink to="/mine/123">mine兜底1</NuxtLink>
    </div>
    <div>
      <NuxtLink to="/mine/123">mine兜底2</NuxtLink>
    </div>
    <div>
      <NuxtLink to="/123123">404</NuxtLink>
    </div>
    {{ routeName }}
    <div><NuxtPage></NuxtPage></div>
  </NuxtLayout>
</template>
<script setup lang="ts">
import { useRoute, useRouter } from "vue-router";
const router = useRouter();
const route = useRoute();
console.log(router.getRoutes());
const routeName = computed(() => {
  return route.name;
});
</script>
  1. 创建布局,一定要有slot
<template>
  <h1>默认布局</h1>
  <slot></slot>
</template>

<script setup lang="ts"></script>

<style></style>
  1. 此时页面样式
    在这里插入图片描述

新增指定页面layout

  1. 创建/layouts/home.vue文件
<template>
  <h1>home页面指定布局</h1>
  <slot></slot>
</template>

<script setup lang="ts"></script>

<style></style>
  1. 使用/pages/home.vue中引入以下代码。 使用definePageMeta指定layout,同时也可以给layout传false代表不使用layout。 (当一组页面要使用相同的样式时,需要配置嵌套路由)。
<template>
  <div>
    <NuxtLink to="/home/index1">跳转到home子页面</NuxtLink>
    <NuxtPage></NuxtPage>
  </div>
</template>

<script setup lang="ts">
definePageMeta({
  layout: "home",
});
</script>
  1. 此时页面样式
    在这里插入图片描述

共享layout的嵌套路由

  1. 这里以home为例首先创建/pages/home.vue 和 /pages/home/index.vue, /pages/home/index1.vue目录结构如下,此时的/pages/home.vue则为入口,需要添加NuxtPage,见上方代码。此时home下的页面将使用home.vue中指定的layout。
    在这里插入图片描述
    下一篇更新nuxt路由传接参数,参数校验,路由中间件(等同于vue中的路由拦截)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值