浅谈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 相关文章推荐
javascript实现unicode和字符的互相转换
Jul 18 Javascript
jQuery中clone()方法用法实例
Jan 16 Javascript
Jquery基础教程之DOM操作
Aug 19 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
利用canvas实现的加载动画效果实例代码
Jul 05 Javascript
vue引入jq插件的实例讲解
Sep 12 Javascript
详解React+Koa实现服务端渲染(SSR)
May 23 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
开发中常用的25个JavaScript单行代码(小结)
Jun 28 Javascript
ES2020系列之空值合并运算符 '??'
Jul 22 Javascript
JavaScript实现瀑布流布局的3种方式
Dec 27 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
Jan 26 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面向对象全攻略 (十) final static const关键字的使用
2009/09/30 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
python写的一个文本编辑器
2014/01/23 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python2与python3共存问题的解决方法
2018/09/18 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
用python写PDF转换器的实现
2020/10/29 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
应届本科生推荐信范文
2013/12/25 职场文书
简历里的自我评价范文
2014/02/24 职场文书
大学军训决心书
2015/02/05 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python