Nuxt的路由配置和参数传递方式


Posted in Javascript onNovember 06, 2020

学习前端框架都要学习路由机制,因为路由可以体现我们的业务逻辑,把模块串联起来,让程序换发光彩。

那简单的说路由就是我们的跳转机制,也可以简单理解成链接跳转。

Nuxt.js的路由并不复杂,它给我们进行了封装,让我们节省了很多配置环节。

简单路由Demo

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

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

<template>
 <div>
  <h2>About Index page</h2>
  <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>
  <h2>News Index page</h2>
  <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>
  <h2>About Index page</h2>
  <ul>
   <li><nuxt-link :to="{name:'index'}">Home</nuxt-link></li>
  </ul>
 </div>
</template>

news文件夹下新建index.vue

<template>
 <div>
  <h2>News Index page</h2>
  <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>
  <h2>News Index page</h2>
  <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的路由配置和参数传递方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS小功能(列表页面隔行变色)简单实现
Nov 28 Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 Javascript
深入解析JavaScript中的arguments对象
Jun 12 Javascript
浅谈JS中String()与 .toString()的区别
Oct 20 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
vue中实现移动端的scroll滚动方法
Mar 03 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
Nov 25 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
webpack打包优化的几个方法总结
Feb 10 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
May 03 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
Nov 06 #Javascript
Jquery Fade用法详解
Nov 06 #jQuery
nuxt静态部署打包相对路径操作
Nov 06 #Javascript
全网小程序接口请求封装实例代码
Nov 06 #Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
Nov 06 #Javascript
微信小程序自定义tabBar的踩坑实践记录
Nov 06 #Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 #Javascript
You might like
PHP 七大优势分析
2009/06/23 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
javascript 定义初始化数组函数
2009/09/07 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Python字符编码判断方法分析
2016/07/01 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
python并发编程之线程实例解析
2017/12/27 Python
python编写弹球游戏的实现代码
2018/03/12 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
销售主管岗位职责范本
2014/02/14 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
干部作风建设心得体会
2014/10/22 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis