【Nuxt】约定式路由和内置组件

约定式路由

手动创建:

在这里插入图片描述

或者还可以使用终端创建页面:nuxi-add-page
npx nuxi add page about — about.vue
npx nuxi add page about/index — about/index.vue

    <NuxtLink to="/">
      <button>Home</button>
    </NuxtLink>
    <NuxtLink to="/category">
      <button>Category</button>
    </NuxtLink>
    <NuxtLink to="/cart">
      <button>Cart</button>
    </NuxtLink>

内置组件

NuxtLink

  • <NuxtLink>是Nuxt内置组件,用来实现页面导航,是对RouterLink的扩展,比如:进入视口的链接启用预取资源等。
    • 底层是一个<a>标签,因此使用a+href属性也支持路由导航
    • 但是用a标签导航会有触发浏览器默认刷新事件,而NuxtLink不会,NuxtLink 还扩展了其它的属性和功能
  • 应用Hydration后(已激活,可交互),页面导航会通过前端路由来实现。这可以防止整页刷新。当然,手动输入URL后,点击刷新浏览器也可导航,这会导致整个页面刷新
  • NuxtLink组件属性:
    • to:支持路由路径、路由对象、URL
    • href:to的别名
    • replace:默认为false,是否替换当前路由
    • activeClass:激活链接的类名
    • target:和a标签的target 一样,指定何种方式显示新页面
    <NuxtLink href="/category">
      <button>Category</button>
    </NuxtLink>
    <NuxtLink :to="{
        path: '/cart',
        query: {
          id: 1
        },
    }">
      <button>Cart</button>
    </NuxtLink>
<!--    激活的a会带上类 class="router-link-active router-link-exact-active" 可以通过 active-class 去修改激活的类 -->
<!--    加上 replace 属性会打开新页面进行路由替换 路由栈元素被替换 浏览器的后退不到之前的页面-->
<!--    跳转外部链接a标签会自动加上 rel="noopener noreferrer" 属性
        (同理直接使用a标签然后加上external属性也会被自动加上ref="xxx"外部属性)-->
    <NuxtLink to="https://www.baidu.com" target="_blank">
      <button>百度</button>
    </NuxtLink>
    <NuxtPage/>
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Nuxt.js中,配置动态路由可以通过使用动态路由参数来实现。动态路由参数是指在路由路径中使用冒号(:)定义的参数,这些参数的值可以根据实际情况进行动态匹配。 下面是配置动态路由的步骤: 1. 在Nuxt.js项目的`pages`目录下创建一个文件夹,用于存放与动态路由相关的页面组件。 2. 在该文件夹下创建一个`.vue`文件,作为动态路由的页面组件。例如,创建一个名为`_id.vue`的文件,其中`id`是动态路由参数的名称。 3. 在`nuxt.config.js`文件中配置动态路由。找到`router`配置项,并添加一个`extendRoutes`属性,用于扩展路由配置。 ```javascript export default { // ... router: { extendRoutes(routes, resolve) { routes.push({ name: 'dynamic', path: '/dynamic/:id', // 定义动态路由路径 component: resolve(__dirname, 'pages/dynamic/_id.vue') // 指定对应的页面组件 }) } } } ``` 在上述代码中,我们定义了一个名为`dynamic`的路由,路径为`/dynamic/:id`,并指定了对应的页面组件。 4. 在动态路由的页面组件中,可以通过`this.$route.params`来获取动态路由参数的值。例如,在`_id.vue`文件中可以这样使用: ```vue <template> <div> <h1>动态路由页面</h1> <p>参数值:{{ $route.params.id }}</p> </div> </template> ``` 在上述代码中,我们通过`$route.params.id`获取了动态路由参数`id`的值,并在页面中进行展示。 这样,当访问`/dynamic/123`时,就会匹配到动态路由页面组件`_id.vue`,并且可以获取到参数值为`123`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小秀_heo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值