浅谈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 相关文章推荐
延时重复执行函数 lLoopRun.js
May 08 Javascript
原生javascript实现图片轮播效果代码
Sep 03 Javascript
jQuery实现单击和鼠标感应事件
Feb 01 Javascript
jQuery获得document和window对象宽度和高度的方法
Mar 25 Javascript
跟我学习javascript的call(),apply(),bind()与回调
Nov 16 Javascript
jquery判断复选框是否选中进行答题提示特效
Dec 10 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
微信小程序组件 marquee实例详解
Jun 23 Javascript
js实现方块上下左右移动效果
Aug 17 Javascript
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
javascript实现蒙版与禁止页面滚动
Jan 11 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
php注册登录系统简化版
2020/12/28 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
python检测是文件还是目录的方法
2015/07/03 Python
python自带的http模块详解
2016/11/06 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
python的json包位置及用法总结
2020/06/21 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
校长寄语大全
2014/04/09 职场文书
毕业证代领委托书
2014/09/26 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
yolov5返回坐标的方法实例
2022/03/17 Python