浅谈vue-router 路由传参的方法


Posted in Javascript onDecember 27, 2017

路由传参数。在很多时候我们需要路由上面传递参数,比如新闻列表页,我们需要传递新闻ID,给新闻详细页。

1.新闻列表页模板

<template id="news">
    <div>
      <h2>新闻列表</h2>
      <ul>
        <li>
          <router-link to="/news/001">新闻001</router-link>
        </li>
        <li>
          <router-link to="/news/002">新闻002</router-link>
        </li>
      </ul>      
    </div>
  </template>

我们访问/news/001,跳转到新闻详细页,展示001的这条新闻。

2.新闻详细页组件准备

<template id="NewsDetail">
    <div>
      新闻详细页面
      <span>{{$route.params.id}}</span>
    </div>
  </template>

$route.params.id获取路由上的参数

3.定义路由,增加一个路由

{ path: '/news/:id', component: NewsDetail },

4.全部代码如下:

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta charset="utf-8">
  <script src="http://unpkg.com/vue/dist/vue.js"></script>
  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body> 
  <div id="box">
    <p>
      <router-link to="/home">home</router-link>
      <router-link to="/news">news</router-link>
    </p>
     <router-view></router-view>
  </div>

  <!-- 模板抽离出来 -->
  <template id="home">
    <!-- 注意:组件只能有一个根元素,所以我们包装到这个div中 -->
    <div>
      <h2>首页</h2>
       <router-link to="/home/login">登录</router-link>
      <router-link to="/home/reg">注册</router-link>
      <!-- 路由匹配到的组件将渲染在这里 -->
      <router-view></router-view>
    </div>
  </template>

  <template id="news">
    <div>
      <h2>新闻列表</h2>
      <ul>
        <li>
          <router-link to="/news/001">新闻001</router-link>
        </li>
        <li>
          <router-link to="/news/002">新闻002</router-link>
        </li>
      </ul>      
    </div>
  </template>

  <template id="login">
    <div>登录界面</div>
  </template>
  <template id="reg">
    <div>注册界面</div>
  </template>

  <template id="NewsDetail">
    <div>
      新闻详细页面
      <span>{{$route.params.id}}</span>
    </div>
  </template>

  <script type="text/javascript">
    // 1. 定义(路由)组件。
    const Home = { template: '#home' };
    const News = { template: '#news' };

    const Login = { template: '#login' };
    const Reg = { template: '#reg' };

    //新闻详细页组件
    const NewsDetail = { template: '#NewsDetail' };


    // 2. 定义路由
    const routes = [
       { path: '/', redirect: '/home' },
      { 
        path: '/home', 
        component: Home, 
        children:[
          { path: '/home/login', component: Login},
          { path: '/home/reg', component: Reg}
        ]
      },
      { path: '/news', component: News,},
      { path: '/news/:id', component: NewsDetail },

    ]

    // 3. 创建 router 实例,然后传 `routes` 配置
    const router = new VueRouter({
      routes // (缩写)相当于 routes: routes
    })


    // 4. 创建和挂载根实例。
    // 记得要通过 router 配置参数注入路由,
    // 从而让整个应用都有路由功能
    const app = new Vue({
     router
    }).$mount('#box')

    // 现在,应用已经启动了!
  </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE事件对象(The Internet Explorer Event Object)
Jun 27 Javascript
JavaScript判断变量是否为undefined的两种写法区别
Dec 04 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
Oct 20 Javascript
AngularJS ng-mousedown 指令
Aug 02 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
JavaScript队列的应用实例详解【经典数据结构】
Apr 12 Javascript
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
Vue实现远程获取路由与页面刷新导致404错误的解决
Jan 31 Javascript
vue路由对不同界面进行传参及跳转的总结
Apr 20 Javascript
JavaScript算法学习之冒泡排序和选择排序
Nov 02 Javascript
vue 实现通过vuex 存储值 在不同界面使用
Nov 11 Javascript
layui写后台表格思路和赋值用法详解
Nov 14 Javascript
关于laydate.js加载laydate.css路径错误问题解决
Dec 27 #Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
Dec 27 #Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 #Javascript
使用命令行工具npm新创建一个vue项目的方法
Dec 27 #Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
Dec 27 #Javascript
VSCode 配置React Native开发环境的方法
Dec 27 #Javascript
VSCode配置react开发环境的步骤
Dec 27 #Javascript
You might like
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
escape unescape的php下的实现方法
2007/04/27 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
Python字符串处理实现单词反转
2017/06/14 Python
python各类经纬度转换的实例代码
2019/08/08 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
求职自荐书范文
2013/12/04 职场文书
兼职业务员岗位职责
2014/01/01 职场文书
30岁生日感言
2014/01/25 职场文书
村长贪污检举信
2014/04/04 职场文书
无传销社区工作方案
2014/05/13 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
监考失职检讨书
2015/01/26 职场文书
2015感人爱情寄语
2015/02/26 职场文书
会议通知范文
2015/04/15 职场文书
500字作文之周记
2019/12/13 职场文书
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL