首页 > 其他分享 >【Nuxt3从入门到实战】第二啪:约定路由用起来可真爽啊!

【Nuxt3从入门到实战】第二啪:约定路由用起来可真爽啊!

时间:2022-10-17 20:36:05浏览次数:60  
标签:index vue parent Nuxt3 可真爽 path pages 路由

前言

大家好,我是村长,欢迎关注我的公众号村长学前端。最近在与DevUI团队一起做直播,给大家分享Vue DevUI开源组件库的建设,欢迎大家关注我的B站Young村长!

上一讲写了最小nuxt3应用,我们试用了一下多页面写法,关于是否引入vue-router,nuxt3的行为是:如果只有app.vue不创建pages目录,将不会引入vue-router,则打包体积更小,反之则引入路由库,相当智能吧!

页面路径

nuxt3会自动整合vue-router,并且映射​​pages/​​​目录到应用的routes配置中。就像上一讲演示的​​index.vue​​​和​​detail.vue​​,它们在最终生成的路由配置表中大概是下面这样:

[
{
path: '/',
component: '~/pages/index.vue',
name: 'index',
},
{
path: '/detail',
component: '~/pages/detail.vue',
name: 'detail',
}
]

动态路由

如果我们在文件名或者文件夹名称里面包含了​​方括号​​​,它们将被转换为​​动态路由​​参数。

比如下面这样的文件结构:

-| pages/
---| users-[group]/
-----| [id].vue

上面案例我们可以在组件​​[id].vue​​​中访问​​group​​​、​​id​​这两个参数:

<template>
{{ $route.params.group }}
{{ $route.params.id }}
</template>

通过 ​​/users-admins/123​​ 导航即可:

<NuxtLink to="/users-admins/123">管理员123</NuxtLink>

嵌套路由

目录和文件同名,就制造了嵌套路由。

比如下面目录结构:

-| pages/
---| parent/
------| child.vue
---| parent.vue

child.vue

<template>
<div>
<h1>child page</h1>
</div>
</template>

父组件中使用NuxtChild组件显示嵌套子组件内容,parent.vue:

<template>
<div>
<h1>parent page</h1>
<!-- 子组件出口 -->
<NuxtChild></NuxtChild>
</div>
</template>

试一下,index.vue

<NuxtLink to="/parent/child">Parent</NuxtLink>

产生的路由会像下面这样:

{
path: '/parent',
children: [
{
path: 'child'
}
]
}

那如果只使用​​/parent​​​会怎么样?发现内容没有了,显然需要一个​​{path: '/parent/'}​​子路由

【Nuxt3从入门到实战】第二啪:约定路由用起来可真爽啊!_嵌套

解决方法也很简单,在​​parent/​​​目录下加一个​​index.vue​​即可。

原理

动态路由的原理可以简单在​​.nuxt​​目录中一探究竟

下次预告

有时候需要在不同页面间共用模板页:这就要用到模板功能,下次将带大家一起看看怎么做到这一点。




标签:index,vue,parent,Nuxt3,可真爽,path,pages,路由
From: https://blog.51cto.com/u_15680963/5764308

相关文章

  • ShardingSphere的路由引擎类型
    ShardingSphere的路由引擎类型本篇文章源码基于4.0.1版本上篇文章我们了解到了ShardingSphere在路由流程过程中,根据不同类型的SQL会现在不同的路由引擎,而ShardingSphere......
  • vue-10 router路由
    配置:安装使用npminstallvue-router添加路由配置文件,例router.js并在文件中进行路由配置将路由配置添加到main.js中的vue对象使用路由router.js文件//1、引入基......
  • man.js中写前置路由导航守卫
    之前做的一个项目的案例,用到了前置守卫,整个main.js如下:importVuefrom"vue";importAppfrom"./App.vue";importaxiosfrom"axios";importElementUIfrom"ele......
  • linux查询网络路由表
    netstat[root@10-21-0-1~]#netstat-nrKernelIProutingtableDestinationGatewayGenmaskFlagsMSSWindowirttIface0.0.0.0......
  • 路由器
    IP层转发分组的过程需要掌握的知识:计算查表会描述转发算法几种路由的特点,用途。匹配算法逐跳转发在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址)每个......
  • Ubuntu中如何查看网络路由表?
    buntu中如何查看网络路由表?路由表的主要作用是供路由器查找目标网络,进而确定转发接口及下一跳路由,完成数据包的转发功能,下面为大家详细讲解一下Ubuntu中查看网络路由表具体......
  • Kubernetes Traefik 路由规则及中间件 Traefik Middlewares 的配置 (k3s)
    系统环境:  Traefik版本:v2.2.0Kubernetes版本:K3s1.23.6一、什么是TraefikTraefik是一款开源的边缘路由器,现在本人主要要作用于kubernetes中对外的网关,即Ingress路......
  • 路由导航有哪几种?怎么跳转传参
    1.声明式导航 目标:可用全局组件router-link来替代a标签;总结:链接导航,用router-link配合to,实现点击切换路由;特点:vue-router提供了一个全局组件router-link......
  • 路由和Nginx
    history路由前端router实现history路由刷新页面流程一个新的请求发起后-->后端路由->后端路由规则返回内容-->浏览器加载页面内容-->前端路由处理渲染->按前......
  • Vue路由跳转后,页面和滚动条不在最顶部。
    在路由跳转后,页面以及滚动条保持在当前位置,没用回到最顶部怎么办?解决方法如下:在main.js中加入以下代码router.afterEach((to,from,next)=>{window.scrollTo(0,0)})......