vue-router命名路由和命名视图

命名路由

命名路由是什么(就是给路由配置一个name)

在创建router实例的时候,在routes配置中给某个路由设置name

const router = new VueRouter({
  routes: [
    {
      path: '/user/:userId',
      name: 'user',//这个name就是当前路由的名称
      component: User
    }
  ]
})

命名路由干什么用

当路径比较多比较复杂的时候,使用命名路由,代替路径实现路由跳转是一个很好的体验

命名路由怎么用

获取这个路由的

//不使用name获取路由
<router-link :to="/name/123">User</router-link>
//使用路由name获取路由
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
//编程式导航跳转 使用router name
this.$router.push({ name: 'user', params: { userId: 123 }})

命名视图

命名路由是什么(就是给router-view 配置一个name)

  • router-link的视图展示在router-view中,但是有时候想同时展示多个视图,而不是都嵌套在一个router-view中,那么使用命名视图可以让页面中存在多个单独命名的视图出口
  • router-view没有设置名字,那么默认为default
//在一个组件中  同时存在多个router
<router-view></router-view>
<router-view name='a'></router-view>
<router-view name='b'></router-view>

一个视图使用一个组件渲染,因此对于同个路由,多个视图就需要多个组件。确保正确使用 components 配置 (带上 s):

const router = new VueRouter({
  routes: [
    {
      path: '/',
      components: {
        default: Foo,
        a: Bar,
        b: Baz
      }
    }, {
      path: '/other',
      components: {
        default: Foo,
        a: Bar,
      }
    }
  ]
})

通俗的讲,上边的代码就是:

  1. 路径‘ / ’渲染三个视图(匿名视图router-view 默认是default里边渲染Foo组件,名字是a的router-view渲染Bar组件,名字是b的router-view渲染的是Baz组件)
  2. 路径' /other '渲染两个视图 (匿名视图router-view 默认是default里边渲染Foo组件,名字是a的router-view渲染Bar组)

不使用命名视图的情况处理以上问题:需要用 编写包括 Foo Bar Baz 组件的新组建为‘ / ’要渲染组件 和 编写包括 Foo Bar 组件的新组建为‘ /other ’要渲染组件,这样就只需一个router-view就够了

嵌套命名视图

对于比较复杂的页面结构,可能需要嵌套路由来处理(用嵌套组件也可以实现相同效果)

/settings/emails                                       /settings/profile
+-----------------------------------+                  +------------------------------+
| UserSettingsTit                   |                  | UserSettingsTit              |
| +-----+-------------------------+ |                  | +-----+--------------------+ |
| | Nav | UserEmailsSubscriptions | |  +------------>  | | Nav | UserProfile        | |
| |     +-------------------------+ |                  | |     +--------------------+ |
| |     |                         | |                  | |     | UserProfilePreview | |
| +-----+-------------------------+ |                  | +-----+--------------------+ |
+-----------------------------------+                  +------------------------------+

以上是两个路由对应的不同的页面结构

分析这两个页面的结构

都存在UserSettingsTit和Nav 组件
区别的组件有UserEmailsSubscriptions 和另一个路由下的UserProfile, UserProfilePreview 
相同的路由对应相同的组件,不同的路由对应不同的路由

//代码实现UserSettings组件结构

<!-- UserSettings.vue -->
<div>
  <UserSettingsTit>
  <NavBar/>
  <router-view/>
  <router-view name="helper"/>
</div>

//代码实现路由

let routes=[
  {
    path:'settings',
    component:userSetting,
    children:[{
                  path:'emails',
                  //components:[
                      //default:UserEmailsSubscriptions, 
                  //]
                  conponent:UserEmailsSubscriptions
               },{
                  path:'profile',
                  components:[
                      default: UserProfile,
                      helper: UserProfilePreview
                  ]
             }]
  }
]

//以上代码执行,会调用组件的钩子函数 ---代码地址:https://jsfiddle.net/22wgksa3/10232/

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

推荐阅读更多精彩内容