温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在Nuxt环境中如何配置路由和传递参数

发布时间:2020-11-07 15:07:29 来源:亿速云 阅读:465 作者:Leah 栏目:开发技术

本篇文章为大家展示了在Nuxt环境中如何配置路由和传递参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

简单路由Demo

我们现在在根目录的pages文件下新建两个文件夹,about和news(模仿关于我们和新闻的功能模块)

在about文件夹下新建index.vue文件,代码如下:

<template>
  <div>
    <h3>About Index page</h3>
    <ul>
      <li><a href="/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Home</a></li>
    </ul>
  </div>
</template>

在news文件夹下新建index.vue文件,代码如下:

<template>
  <div>
    <h3>News Index page</h3>
    <ul>
      <li><a href="/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Home</a></li>
    </ul>
  </div>
</template>

修改原来的pages文件夹下的index.vue,删除没用的代码,写入下面链接代码:

<template>
 <div>
  <ul>
   <li><a href="/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >HOME</a></li>
   <li><a href="/about" rel="external nofollow" >ABOUT</a></li>
   <li><a href="/news" rel="external nofollow" >NEWS</a></li>
  </ul>
 </div>
</template>

<script>
export default {
 comments:{}
}
</script>

<style lang="less" scoped>

</style>

结果如下:

在Nuxt环境中如何配置路由和传递参数

<nuxt-link>标签

虽然上面的例子跳转已经成功,但是Nuxt.js并不推荐这个中<a>标签的作法,它为我们准备了<nuxt-link>标签(vue中叫组件)。我们<a>标签替换成<nuxt-link>

about文件夹下新建index.vue

<template>
  <div>
    <h3>About Index page</h3>
    <ul>
      <li><nuxt-link :to="{name:'index'}">Home</nuxt-link></li>
    </ul>
  </div>
</template>

news文件夹下新建index.vue

<template>
  <div>
    <h3>News Index page</h3>
    <ul>
      <li><nuxt-link :to="{name:'index'}">Home</nuxt-link></li>
    </ul>
  </div>
</template>

pages文件夹下的index.vue

<template>
 <div>
  <ul>
   <li><nuxt-link :to="{name:'index'}">HOME</nuxt-link></li>
   <li><nuxt-link :to="{name:'about'}">ABOUT</nuxt-link></li>
   <li><nuxt-link :to="{name:'news'}">NEWS</nuxt-link></li>
  </ul>
 </div>
</template>

<script>
export default {
}
</script>

<style>

</style>

params传递参数

路由经常需要传递参数,我们可以简单的使用params来进行传递参数,我们现在向新闻页面(news)传递个参数,然后在新闻页面进行简单的接收。

我们先修改pages下的Index.vue文件,给新闻的跳转加上params参数,传递3306ID。

<template>
 <div>
  <ul>
   <li><nuxt-link :to="{name:'index'}">HOME</nuxt-link></li>
   <li><nuxt-link :to="{name:'about'}">ABOUT</nuxt-link></li>
   <li><nuxt-link :to="{name:'news',params:{newsId:3306}}">NEWS</nuxt-link></li>
  </ul>
 </div>
</template>
<script>
export default {
 components: {
 }
}
</script>
<style>
</style>

在news文件夹下的index.vue里用$route.params.newsId进行接收,代码如下。

<template>
 <div>
   <h3>News Index page</h3>
   <p>NewsID:{{$route.params.newsId}}</p>
    <ul>
    <li><a href="/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Home</a></li>
   </ul>
 </div>
</template>

在Nuxt环境中如何配置路由和传递参数

补充知识:nuxt路由中的params和query

定义路由

路由表,配置的整个项目中可以访问的所有的路由信息

建议每一个路由都加一个name属性,在页面跳转的时候使用

建议name不能重复

const router=new VueRouter({
  routes:[
    {
     path: '/detail', // 表示路径,表示url地址栏中输入的内容
     component: Home, // 表示访问这个地址的时候显示哪一个组件
     name: 'H', // 名字
   } 
  ]
 
})

路由跳转

1.router-link to属性设置跳转信息

to可以直接设置一个字符串,表示跳转的url地址

to可跟一个对象,建议使用此方法,跳转的时候使用name

2.编程式跳转

$router.push

路由传参

1.query 表示参数在url后面进行传递,参数直接拼在url地址栏的后面,用?分割一下,多个参数用&分割

获取使用 $route.query

2.params 表示在routes定义的时候可以使用 “:参数名”的形式进行占位处理

可以传递多个参数 如果要保证页面刷新之后参数还可以使用,需要在routes中做配置

获取使用 $route.params

(细节重点)如果想要在页面刷新或者执行其它操作之后还保留传递的参数,需要在路由表(routes)中作配置,使用 “:参数名”的形式进行占位处理

补充

当使用了vue-router组件之后

项目中会自动生成两个变量 $route $router

$route 表示当前页的路由信息 获取获取 地址 query params等参数
$router 表示路由对象 可以在上面访问路由的跳转方法
$route.params 获取params传的参数
$route.query 获取query传的参数
// vue-router学习笔记 记录开发中的点点滴滴

跳转路由的几种方式:

1、声明式:

1) 根据路由路径(/home/sort/detail)跳转 <router-link :to="{path: '/home/sort/detail', query:{id: 'abc'}}">点击查看子页面</router-link>

2) 根据路由名称(detail)跳转 <router-link :to="{name: 'detail', params:{id: 'abc'}}">点击查看子页面</router-link> :to="" 可以实现绑定动态的 路由 和 参数

2、编程式:

1) this.$router.push({path: '/home/sort/detail',query:{id: 'abc'}})

2) this.$router.push({name: 'detail',params:{id: 'abc'}})

备注: params 和 query 传参的区别:

1、params传参时 参数不会出现在url的路径上面, 但是刷新页面时param里面的数据会消失

2、query传参时 参数出现在url的路径上面, 刷新页面时query里面的数据不变

上述内容就是在Nuxt环境中如何配置路由和传递参数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI