详解如何使用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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
用JS实现3D球状标签云示例代码
Dec 01 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
Jun 27 Javascript
使用百度地图api实现根据地址查询经纬度
Dec 11 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
May 30 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
React-redux实现小案例(todolist)的过程
Sep 29 Javascript
vuex实现数据状态持久化
Nov 11 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实现删除字符串中任何字符的函数
2015/08/11 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
一个超级简单的python web程序
2014/09/11 Python
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
python global关键字的用法详解
2019/09/05 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
文化建设工作方案
2014/05/12 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
公务员年度个人总结
2015/02/12 职场文书
海底两万里读书笔记
2015/06/26 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电
mysql如何查询连续记录
2022/05/11 MySQL