浅谈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 相关文章推荐
根据分辨率不同,调用不同的css文件
Aug 25 Javascript
javascript中有趣的反柯里化深入分析
Dec 05 Javascript
JS二维数组的定义说明
Mar 03 Javascript
Javascript writable特性介绍
Feb 27 Javascript
深入理解jquery中extend的实现
Dec 22 Javascript
JavaScript算法教程之sku(库存量单位)详解
Jun 29 Javascript
给vue项目添加ESLint的详细步骤
Sep 29 Javascript
vue select选择框数据变化监听方法
Aug 24 Javascript
微信小程序和H5页面间相互跳转代码实例
Sep 19 Javascript
js实现内置计时器
Dec 16 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
Feb 16 Javascript
js实现小时钟效果
Mar 25 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 缓存函数代码
2008/08/27 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
为你总结一些php信息函数
2015/10/21 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
学习ExtJS Window常用方法
2009/10/07 Javascript
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
axios取消请求的实践记录分享
2018/09/26 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
2018/08/05 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
广州盈通面试题
2015/12/05 面试题
园长自我鉴定
2013/10/06 职场文书
获奖的大学生创业计划书
2014/01/05 职场文书
考研导师推荐信范文
2015/03/27 职场文书
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers