详解如何使用router-link对象方式传递参数?


Posted in Javascript onMay 02, 2019

疑问:(判断和传参)

点击导航栏目,js如何判断自己点击的是哪个具体栏目?
它们是如何传参的?
如何使用params,携带查询参数?

效果图解说:

A. 点击选择【屈原“查看详情”】之前

详解如何使用router-link对象方式传递参数?

B. 点击选择【屈原“查看详情”】之后

详解如何使用router-link对象方式传递参数?

要点总结:

在vue-router中,有两大对象被挂载到了实例this;
$route(只读、具备信息的对象);
$router(具备功能的函数)

查询字符串:

1.去哪里 ?

<router-link :to="{name:'detail',query:{id:1}}"> xxx </router-link>

2.导航(查询字符串path不用改)

{name:'detail',path:'/detail',组件}

3.去了干嘛?获取路由参数(要注意是 query ,还是 params 和 对应的 id 名? 是后者需要注意设置相关文件的id规则)

+ this.$route.query.id

path方式:

1.去哪里 ?

<router-link :to="{name:'detail',params:{name:1}}"> xxx </router-link>

2.导航(查询字符串path不用改)

{name:'detail',path:'/detail/:name',组件}

3.去了干嘛?获取路由参数(要注意是 query ,还是 params 和 对应的 name 名? 是后者需要注意设置相关文件的id规则)

+ this.$route.params.id

相关文件代码:

1. main.js文件

import Vue from 'vue';
import VueRouter from 'vue-router';
//引入主体(页面初始化显示)
import App from './components/app.vue';
//一个个link对象 - 分类
import Detail from './components/detail.vue';
import List from './components/list.vue';

//安装插件
Vue.use(VueRouter);//挂载属性

//创建路由对象并配置路由规则
let router = new VueRouter({
  //routes
  routes: [
  //一个个link对象
  {name: 'detail',path: '/detail',component: Detail},
  //此处的path规则不受list.vue中的query(匹配参数规则的)影响
  {name: 'list',path: '/list',component: List}
 ]
});

/* new Vue 启动 */
new Vue({
 el: '#app',
 render: c => c(App),
 //让vue知道我们的路由规则
 router:router,//可以简写为router
})

2. app.vue文件

<template>
 <div>
  <div class="header">
    头部 - 导航栏目

    <p>
      <router-link :to="{name:'detail'}">细节列表1</router-link>
      <router-link :to="{name:'list'}">英雄列表1</router-link>
    </p>
  </div>

  <!--留坑,非常重要-->
    <router-view class="main"></router-view>

    <div class="footer">底部 - 版权信息</div>

 </div>
</template>

<script>


  export default {
   data(){
    return{

    }
   },
   methods:{

   }
  }
</script>

<style scoped>
  .header,.main,.footer{text-align: center;padding: 10px;}

  .header{height:70px;background: yellowgreen;}
  .main{height:300px;background: skyblue;}
  .footer{height: 100px;background: hotpink;}
</style>

3. list.vue文件

<template>
  <div>
    我是list列表
    <!-- :key是绑定器 -->
    <!-- query是查询字符串,加查询参数 ,相当于查询规则;对比参考main.js关于路由配置path属性-->
    <ul>
      <li v-for="(hero,index) in heros" :key="index">
        {{hero.name}}
        <router-link :to="{name:'detail',query:{id:index}}">查看详情</router-link>
      </li>
    </ul>
  </div>
</template>

<script>
  export default{
    data(){
      return{
        heros:[{
          name:'李白'
        },{
          name:'杜甫'
        },{
          name:'屈原'
        },{
          name:'白居易'
        },{
          name:'李清照'
        },{
          name:'欧阳修'
        }]
      }
    }
  }
</script>

<style scoped> 
  ul,li{list-style: none;}
</style>

4. detail.vue文件:(可以在控制台查看打印结果)

<template>
  <div>
    我是详情
  </div>
</template>

<script>
  export default{
    data(){
      return{

      }
    },//DOM尚未生成
    create(){
      //获取路由参数
      //vue-router中挂载两个对象的属性
      //$route(信息数据)
      //$router(功能函数)
      /*console.log(this.$route.params);*/
      console.log(this.$route.query);

    },//已经将数据装载到页面上去了,DOM已经生成
    mounted(){

    }
  }
</script>

<style>
</style>

这就是本文的内容。

以上所述是小编给大家介绍的如何使用router-link对象方式传递参数详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 表单规则集合对象
Jul 21 Javascript
JQuery中DOM事件合成用法实例分析
Jun 13 Javascript
jquery模拟alert的弹窗插件
Jul 31 Javascript
js实现图片无缝滚动特效
Mar 19 Javascript
原生JS实现首页进度加载动画
Sep 14 Javascript
轻松实现jQuery添加删除按钮Click事件
Mar 13 Javascript
jquery实现提示语淡入效果
May 05 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
vue拦截器实现统一token,并兼容IE9验证功能
Apr 26 Javascript
express启用https使用小记
May 21 Javascript
vant组件中 dialog的确认按钮的回调事件操作
Nov 04 Javascript
js中Map和Set的用法及区别实例详解
Feb 15 Javascript
详解Vue底部导航栏组件
May 02 #Javascript
微信小程序搭建自己的Https服务器
May 02 #Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
May 02 #Javascript
详解微信小程序网络请求接口封装实例
May 02 #Javascript
vue 搭建后台系统模块化开发详解
May 01 #Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
May 01 #Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
May 01 #Javascript
You might like
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
php数组去重的函数代码
2013/02/03 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
Vue中props的使用详解
2018/06/15 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
安全资料员岗位职责
2013/12/14 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
优秀村官事迹材料
2014/01/10 职场文书
异地年检委托书范本
2014/09/24 职场文书
党支部书记岗位职责
2015/02/15 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
工商局个人工作总结
2015/03/03 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
首席执行官观后感
2015/06/03 职场文书
母亲去世追悼词
2015/06/23 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android