浅谈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 相关文章推荐
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
Mar 25 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
Sep 20 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
AngularJs表单验证实例代码解析
Nov 29 Javascript
利用jQuery解析获取JSON数据
Apr 08 jQuery
详解vue.js的devtools安装
May 26 Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
React中的render何时执行过程
Apr 13 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
Sep 26 Javascript
vue监听用户输入和点击功能
Sep 27 Javascript
js实现经典贪吃蛇小游戏
Mar 19 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漏洞小结
2012/02/05 PHP
php存储过程调用实例代码
2013/02/03 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
php use和include区别总结
2019/10/13 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
javascript实现表单验证
2016/01/29 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
Python File(文件) 方法整理
2019/02/18 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
如何将json数据转换为python数据
2020/09/04 Python
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
大四毕业生学习总结的自我评价
2013/10/31 职场文书
出国留学经济担保书
2014/04/01 职场文书
秋菊打官司观后感
2015/06/03 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
Python中的tkinter库简单案例详解
2022/01/22 Python
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫