浅谈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延时重复执行函数 lLoopRun.js
Jun 29 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
Apr 08 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
jquery获取多个checkbox的值异步提交给php
Jul 07 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
javascript实现九宫格相加数值相等
May 28 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
Aug 20 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
node.js实现回调的方法示例
Mar 01 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
vue实现element表格里表头信息提示功能(推荐)
Nov 20 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 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
漂亮但不安全的CTB
2006/10/09 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
javascript window.opener的用法分析
2010/04/07 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
python和ruby,我选谁?
2017/09/13 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
python使用PyQt5的简单方法
2019/02/27 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
个人生活学习自我评价范文
2013/11/26 职场文书
小学美术教学反思
2014/02/01 职场文书
监察建议书范文
2014/03/12 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS