疑问:(判断和传参)
点击导航栏目,js如何判断自己点击的是哪个具体栏目?
它们是如何传参的?
如何使用params,携带查询参数?
效果图解说:
A. 点击选择【屈原“查看详情”】之前
B. 点击选择【屈原“查看详情”】之后
要点总结:
在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 名"text-align: left">+ 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 名"text-align: left">+ 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对象方式传递参数详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。