vue-router基础知识

1.安装和引用

npm install vue-router --save-dev (如果在用vue-cli构建项目的时候已经使用安装略过)

引用router

import Vue from 'vue'   //引入Vue
import Router from 'vue-router'  //引入vue-router
Vue.use(Router)  //Vue全局使用Router

2.项目router文件的简单说明

export default new Router({
  routes: [
    {
      path: '/',     //项目的路径
      name: 'Login',   //路由的名称
      component: Login   //路由绑定的组件
    }
  ]
})

3. 跳转标签 <router-link>

创建组件Page1

<template>
    <router-link to="/p2">P2</router-link>
</template>

<script>
export default {
  data:{

  }
}

创建组件Page2

<template>
    <div>
        {{ msg }}
    </div>
</template>

<script>
export default {
  data(){
      return {
          msg:'Page2'
      }
  }
}
</script>

4.参数传递

1.根据<router-link> 的to传参

1.我们之前配置路由的时候,有一个name参数,现在派上用场了
在Page1.vue 加上

<router-link :to="{name:'p2',params:{name:'ray'}}">携带参数name=ray</router-link>

在Page2.vue 加上

{{$route.params.name}}
2.URL传参(restful 风格)

新建UrlParam组件

<template>
  <div>
      {{ name }}
  </div>
</template>

<script>
export default {
    data(){
        return {
            name:'UrlParam 组件页面'
        }
    }
}
</script>

在router中的index.js 新增一个配置

{
      path: '/param/:name/:age/:desc',
      component: UrlParam
}

在Page1组件中添加跳转到UrlParam的链接

<p>
      <router-link to="/param/ray/18/hello">restful风格传递参数</router-link>
</p>

最后在显示传过来的值

{{ $route.params.name }}  , {{ $route.params.age }} , {{ $route.params.desc }}

最终结果


image.png

在router配置哪里,path配置的路径可以包含正则表达式

{
      path: '/param/:name/:age(\\d+)/:desc',
      component: UrlParam
}

表明age传参的时候只有数字才可以

5. 子路由

子路由的情况一般用在一个页面有他的基础模版,然后它下面的页面都隶属于这个模版,只是部分改变样式

创建子路由组件ChildPage

<template>
  <div>
      {{ msg }}
  </div>
</template>

<script>
export default {
    data(){
        return {
            msg:'我是页面1'
        }
    }
}
</script>

在Page1路由配置那里加上children配置

{
  path: '/page1',
  component: Page1,
  name: 'Page1',
  children:[
        {
           path: 'child',
           component: ChildPage,
           name: 'ChildPage' 
        }
    ]
}

不要忘记导入这个ChildPage组件

import ChildPage from '@/components/router-demo/ChildPage'

在Page1组件template中加上

<router-link to="/page1/child">跳转到子页面</router-link>

关键来了,我们需要用<router-view>来规定其他组件嵌套进当前组件显示的区域

 <router-view></router-view>

我们点击跳转到子页面


image.png

证明子页面的内容已经嵌套入page1组件了

6.单页面多路由的情况

实际上我们多数情况下会遇到一个组件中可能需要存在多个<router-view>
我们再App.vue组件中多加两个<router-view>

 <router-view ></router-view>
<router-view name="left" style="float:left;width:50%;"></router-view>
<router-view name="right" style="float:right;width:50%;"></router-view>

在路由配置里面再加

{
      path: '/moreroute',
      name: 'MoreRoute',
      components:{
        default: HelloWorld,
        left: ChildPage,
        right: ChildPage2
      } 
 }

注意,是components 不是 component
default 表示第一个没命名的视图
最后结果


image.png

7.编程导航(在业务逻辑代码中实现跳转)

相当于浏览器的前进和后退

//后退
this.$router.go(-1)
//前进 
this.$router.go(1)

实现跳转

跳转到/home
2.this.$router.push('/home')
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高。为了更好的应对各种需求,开发人员从软件工程的角...
    一缕殇流化隐半边冰霜阅读 86,902评论 214 1,097
  • 我想给大家分享一下 抽烟的感受 我自小到大没有抽过烟 父母也是常常教导不要抽烟 看到同事都在抽烟 好奇他们的感受 ...
    我爱吃爱拉面阅读 11,124评论 0 2
  • 马云说过:梦想还是要有的万一实现了呢? 误解还是要有的,万一存在了呢? 误会来自于朋友圈的图片,有需要可以去朋友圈...
    光沐思维阅读 301评论 0 0
  • 相亲不同于一般相识熟识再恋爱,一开始就是直奔主题的。所以有些事情完全不同于一般的男女交往慢慢发展感情,如果不注意的...
    风来的西灵阅读 1,247评论 0 1
  • 上午出去拍照,本打算就拍那两棵枫树。突然一位阿姨走过来,告诉我说:“姑娘,我发现一个奇怪的事,走,我带你过去看看”...
    山谷里的百合阅读 1,938评论 0 0