详解如何使用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 相关文章推荐
E3 tree 1.6在Firefox下显示问题的修复方法
Jan 30 Javascript
IE8中动态创建script标签onload无效的解决方法
Dec 22 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
JavaScript如何实现组合列表框中元素移动效果
Mar 01 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
Sep 14 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
vue+axios实现文件下载及vue中使用axios的实例
Sep 21 Javascript
JavaScript Array对象使用方法解析
Sep 24 Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 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
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
js身份证验证超强脚本
2008/10/26 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
Python魔法方法功能与用法简介
2019/04/04 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Pytorch之contiguous的用法
2019/12/31 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
Python logging模块handlers用法详解
2020/08/14 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
工作室成员个人发展规划范文
2014/01/24 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
给校长的建议书范文
2015/09/14 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL
vscode内网访问服务器的方法
2022/06/28 Servers