浅谈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 相关文章推荐
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
对字符串进行HTML编码和解码的JavaScript函数
Feb 01 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
JavaScript网页定位详解
Jan 13 Javascript
jquery ajax跨域解决方法(json方式)
Feb 04 Javascript
jQuery实现简易的天天爱消除小游戏
Oct 16 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
Dec 22 Javascript
jQuery仿IOS弹出框插件
Feb 18 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
Feb 08 Javascript
微信小程序代码上传、审核发布小程序
May 18 Javascript
8 个有用的JS技巧(推荐)
Jul 03 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
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
ThinkPHP路由详解
2015/07/27 PHP
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
win与linux系统中python requests 安装
2016/12/04 Python
Python实现的弹球小游戏示例
2017/08/01 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
应届大学生简历中的自我评价
2014/01/15 职场文书
元旦晚会感言
2014/03/12 职场文书
老师对学生的寄语
2014/04/09 职场文书
大学生村官演讲稿
2014/04/25 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
出纳岗位职责
2015/01/31 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
丧事主持词
2015/07/02 职场文书
2015年暑假工作总结
2015/07/13 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
Python基础之进程详解
2021/05/21 Python
ubuntu下常用apt命令介绍
2022/06/05 Servers