浅谈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闭包
Dec 14 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
Mar 10 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
Oct 14 Javascript
Javascript表格翻页效果实现思路及代码
Aug 23 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 Javascript
js绘制购物车抛物线动画
Nov 18 Javascript
AngularJS模仿Form表单提交的实现代码
Dec 08 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
详解webpack loader和plugin编写
Oct 12 Javascript
vue.js路由mode配置之去掉url上默认的#方法
Nov 01 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
关于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获取远程图片体积大小的实例
2013/11/12 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
jquery禁用右键示例
2014/04/28 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
Python-嵌套列表list的全面解析
2016/06/08 Python
python3.4实现邮件发送功能
2018/05/28 Python
python矩阵的转置和逆转实例
2018/12/12 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python实现翻译word表格小程序
2020/02/27 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
学习两会精神心得范文
2014/03/17 职场文书
教师师德演讲稿
2014/05/06 职场文书
廉政教育的心得体会
2014/09/01 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
机关作风建设自查报告
2014/10/22 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电