四十八、进阶之Nuxt 一级路由及声明式导航

(1)Nuxt一级路由

Nuxt.js依据pages目录结构自动生成vue-router模块的路由配置,不需要自己配置

例如:我们创建在pages文件夹下,创建了3个vue文件

对这个组件分别进行访问:

(2)Nuxt声明式导航

(点击直接访问相应的页面,而不需要在地址栏中切换)

1. nuxt项目的根组件是:

2. 在根组件default.vue中,添加声明式导航:

其中<nuxt-link>类似于<router-link>

3. 效果图

                 

(3)嵌套路由 即 二级路由

方法:如果要创建Film.vue的子路由,我们需要创建一个与Film同名的目录,用来存放子组件

此外,还要在父组件Film.vue中添加 <nuxt-child></nuxt-child> 为子组件预留显示的位置

1. 创建文件夹Film,以及其子组件

2. 在父组件 Film.vue为子组件预留位置

3. 效果图

 

 

 

 

您可以使用以下代码实现 Nuxt.js 中导航点击高亮,并且点击二级导航一级导航仍然高亮的功能。 1. 在 `nuxt.config.js` 中定义路由的 `linkActiveClass` 和 `linkExactActiveClass`: ``` // nuxt.config.js export default { // ... router: { linkActiveClass: 'active', linkExactActiveClass: 'exact-active', }, // ... }; ``` 2. 在模板中添加导航: ``` <template> <div> <nav> <ul> <li :class="{ active: $route.path === '/' }"> <nuxt-link to="/">首页</nuxt-link> </li> <li :class="{ active: $route.path.startsWith('/about') }"> <nuxt-link to="/about">关于我们</nuxt-link> <ul> <li :class="{ active: $route.path === '/about/history' }"> <nuxt-link to="/about/history">历史</nuxt-link> </li> <li :class="{ active: $route.path === '/about/team' }"> <nuxt-link to="/about/team">团队</nuxt-link> </li> </ul> </li> <li :class="{ active: $route.path.startsWith('/contact') }"> <nuxt-link to="/contact">联系我们</nuxt-link> </li> </ul> </nav> <nuxt /> </div> </template> <script> export default {}; </script> <style> nav ul { list-style: none; margin: 0; padding: 0; } nav ul li { display: inline-block; margin-right: 20px; } nav ul li.active > a, nav ul li.exact-active > a { color: red; } </style> ``` 在上面的代码中,我们使用 `:class` 绑定了一个动态的类名,根据当前路由的 `path` 判断是否选中。对于一级导航,我们使用 `$route.path === '/'` 判断当前路由是否是首页,对于二级导航,我们使用 `$route.path.startsWith('/about')` 判断当前路由是否以 `/about` 开头。同时,我们还定义了 `active` 和 `exact-active` 两个类名,`active` 用于普通选中状态,`exact-active` 用于精确匹配选中状态。 希望这个例子对您有所帮助,如果还有其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值