vue学习之Vue-Router用法实例分析


Posted in Javascript onJanuary 06, 2020

本文实例讲述了vue学习之Vue-Router用法。分享给大家供大家参考,具体如下:

Vue-router就像一个路由器,将组件(components)映射到路由(routes)后,通过点击<router-link>它可以在<router-view>中将相应的组件渲染出来。

1、使用vue-router的步骤

//1、创建路由组件
  const Link1={template:'#link1'};
  const Link2={template:'#link2'};
  const Link3={template:'#link3'};
  //2、定义路由映射
  const routes=[
    {
      path:'/link1',       //定义相对路径
      component:Link1,      //定义页面的组件
      children:[
        {
          path:'intro',      //子路由/link1/intro
          component:{template:'#ariesIntro'},
          name:'ariesIntro',    //为路由命名
        },
        {
          path:'feature',
          component:{template:'#ariesFeature'},
        },
        {path:'/',redirect:'intro'}
      ]
    },
    {path:'/link2',component:Link2},
    {path:'/link3',component:Link3},
    {path:'/',redirect:'/link1'}        //配置根路由,使其重定向到/link1
  ];
  //3、创建router实例
  const router = new VueRouter({
    routes                   //缩写,相当于 routes: routes
  });
  // 4、 创建和挂载根实例。
  const app = new Vue({
    router
  }).$mount('#app');              //挂载到id为app的div

注意:要设置根路由,页面加载完成后默认显示根路由,否则将什么也不显示。

在页面中调用路由接口,<router-link> 默认会被渲染成一个 `<a>` 标签,点击后在<router-view>渲染指定模板

<div class="col-lg-offset-2 col-lg-2">
    <!-- 使用 router-link 组件来导航. -->
    <!-- 通过传入 `to` 属性指定链接. -->
    <router-link class="list-group-item" :to="{name:'ariesIntro'}">白羊座</router-link>
    <router-link class="list-group-item" to="/link2">处女座</router-link>
    <router-link class="list-group-item" to="/link3">金牛座</router-link>
  </div>
  <div class="col-lg-6">
    <div class="panel">
      <div class="panel-body">
        <!-- 路由出口,路由匹配到的组件将渲染在这里 -->
        <router-view></router-view>
      </div>
    </div>
  </div>

2、嵌套路由

通过每个路由内的children数组属性可以为每个路由再配置子路由,子路由的路径是基于父路由目录下的,默认路径会进行叠加。例如上面再link1中添加intro与feature两个子路由,在link1模板中使用两个子路由:

<template id="link1">
    <div>
      <h3>白羊座</h3>
      <ul class="nav nav-tabs">
        <li class="active">
          <router-link to="/link1/intro">简介</router-link>
        </li>
        <li><router-link to="/link1/feature">特点</router-link></li>
      </ul>
      <div class="tab-content">
        <router-view></router-view>
      </div>
    </div>
  </template>

最终效果如图:

vue学习之Vue-Router用法实例分析

3、动态路由

在路由路径中绑定变量,使其根据不同的变量值跳转到不同页面,例如将path:"goods/:goodsId",假如当goodsId为15时,就会路由到/goods/15页面。

4、编程路由

通过js代码控制路由页面的跳转与传值。例如给button绑定事件jump,在methods内实现:

jump(){
  this.$router.push('/cart?goodsId=123')
}

页面跳转到根下的cart目录,并且传递参数goodsId,值为123。在cart页面通过$route.query接收参数,直接在页面内使用:

注意:区分跳转是$router,接收参数是$route

<span>商品ID:{{$route.query.goodsId}}</span>

也可以指定页面向前向后跳转:this.$router.go(2),向前跳转两步 ,向后跳转一步go(-1)。

5、命名路由

当路由路径过长时,也可以用name属性为路径命名,在<router-link>中使用动态绑定:to="{name:'路径名'}"访问。例如白羊座的链接上使用 :to="{name:'ariesIntro'}",可直接跳转到link1下的Intro页面。

还可以对视图进行命名,将组件渲染到指定视图位置,例如在父组件中有一个默认视图与两个命名视图一左一右:  

<router-view></router-view>
<router-view class="left" name="cartview"></router-view>
<router-view class="right" name="imgview"></router-view>

在根路由中设置其组件components,将默认视图渲染为GoodsList,左边cartview视图渲染为Cart组件,右边imgview渲染为Image组件:

new Router({
 routes: [
  {
   path: '/',
   components:{
    default:GoodsList,
    cartview:Cart,
    imgview:Image
   }
}

结果如下:

vue学习之Vue-Router用法实例分析

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
open 动态修改img的onclick事件示例代码
Nov 13 Javascript
jquery checkbox实现单选小例
Nov 27 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
Bootstrap页面布局基础知识全面解析
Jun 13 Javascript
原生JavaScrpit中异步请求Ajax实现方法
Nov 03 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
Nov 12 Javascript
Bootstrap实现的表格合并单元格示例
Feb 06 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
微信小程序实现电子签名并导出图片
May 27 Javascript
借助云开发实现小程序短信验证码的发送
Jan 06 #Javascript
React学习之受控组件与数据共享实例分析
Jan 06 #Javascript
Node.js创建一个Express服务的方法详解
Jan 06 #Javascript
JS正则表达式验证端口范围(0-65535)
Jan 06 #Javascript
基于jQuery实现挂号平台首页源码
Jan 06 #jQuery
JS实现音乐导航特效
Jan 06 #Javascript
使用vue实现一个电子签名组件的示例代码
Jan 06 #Javascript
You might like
使用PHP维护文件系统
2006/10/09 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
php发送post请求函数分享
2014/03/06 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
降低PHP Redis内存占用
2017/03/23 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
js获取Get值的方法
2016/09/29 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
深入学习python的yield和generator
2016/03/10 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python语言描述最大连续子序列和
2017/12/05 Python
python实现名片管理系统项目
2019/04/26 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
python操作文件的参数整理
2019/06/11 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
yy婚礼主持词
2014/03/14 职场文书
调查研究项目计划书
2014/04/29 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
品德与社会教学反思
2016/02/24 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS