vue之路由(八)

一、什么是路由?

网络原理中,路由指的是根据上一接口的数据包中的IP地址,查询路由表转发到另一个接口,它决定的是一个端到端的网络路径。

web中,路由的概念也是类似,根据URL来将请求分配到指定的一个'端'。(即根据网址找到能处理这个URL的程序或模块)。

使用vue.js构建项目,vue.js本身就可以通过组合组件来组成应用程序;当引入vue-router后,我们需要处理的是将组件(components)映射到路由(routes),然后在需要的地方进行使用渲染。
1.概念:路由其实就是指向的意思,当我们点击home按钮时,页面中就要显示home的内容,点击login按钮时,页面就显示login的内容,也可以说是一种映射,所有在页面上有两个部分,一个是点击部分,一个是显示部分。
2.路由中有三个基本的概念,route,routes,router。
<1>route:它是一个路由,是一个单数,点击Home按钮->Home内容
<2>routes:它是一组路由,把每一条路由组合起来,串接起来形成一个数组;[{home按钮=>home内容},{about按钮=>about内容}]
<3>router:它是一个机制,相当于一个管理者,来管理所有路由;
<4>客户端中的路由原理:实际上就是dom 元素的显示和隐藏。当页面中显示home 内容的时候,about 中的内容全部隐藏,反之也是一样。客户端路由有两种实现方式:基于hash 和基于html5 history api.

二、基本使用

<1>下载:

npm   install  vue-router --save

<2>引用:在router下面的index.js中

//index.js
import Vue from "vue"
import VueRouter from "vue-router"
Vue.use(VueRouter)
//创建路由对象
export default new VueRouter({
})

<3>路由跳转方式:
router-link
to
帮助我们生成a标签的href
锚点值代码维护不方便,如果需要改变锚点值名称
则需要改变 [使用次数 + 1(配置规则)] 个地方的代码
3.1静态路由跳转

<router-link to="/">首页</router-link>

3.2动态路由跳转

<router-link :to='{path:"/"}'>首页</router-link>

3.3编程式导航

this.$router.push({path:"/"})

<4>命名路由

1:给路由对象一个名称 { name:'home',path:'/home',component:Home}
2:在router-link的to属性中描述这个规则
<router-link :to="{name:'home'}>首页</router-link>"
通过名称找路由对象,获取其path,生成自己的href
极大的降低维护成本,锚点值改变只用在main.js中改变path属性即可

<5>嵌套路由

import Vue from "vue"
import VueRouter from "vue-router"
import Tran from "../components/transition.vue"
import TranOne from "../components/transitionone.vue"
import About from "../components/about.vue"
import First from "../components/aboutfirst.vue"
import Two from "../components/abouttwo.vue"
Vue.use(VueRouter)
export default new VueRouter({
   mode:"history",
   routes:[
     {
       path:"/",
       component:Tran,
       name:"index",
     },{
       path:"/one",
       name:"one",
       component:TranOne
     },{
       path:"/about",
       name:"about",
       component:About,
       children:[
         {
           path:"/about/first",
           component:First
         },{
           path:"/about/two",
           component:Two
         }
       ]
     }
     }
   ]
})

<6>路由重定向和别名

//redirect   alias
export default new VueRouter({
   mode:"history",
   routes:[
     {
       path:"/",
       component:Tran,
       name:"index",
       redirect:"/about",
       alias:"/index"
     },{
        path:"/about",
        component:About
    }
})

<7>路由跳转模式

//  hash      histroy(html5)

<8>路由导航首位
分类:
全局导航守卫:

全局前置导航守卫
router.beforeEach((to,from,next)=>{
//to   去向的目标对象
//form  来自的对象
//next  继续执行后续代码.必须执行next
})
全局后置导航守卫
router.afterEach((to,from)=>{
})

路由独享守卫

export default new VueRouter({
   mode:"history",
   routes:[
     {
       path:"/",
       component:Tran,
       name:"index"
     },{
        path:"/about",
        component:About,
      //路由独享守卫
        beforeEnter:()=>{
         
        }
    }

组件内的导航守卫

<script>
export default {
     name:"",
     data(){
        return {
        }
     },
     beforeRouteEnter(to,from,next){
       //进入组件时调用
     },
     beforeRouteUpdate(to,from,next){
       // 在当前路由改变,但是该组件被复用时调用
      // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
     // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
     // 可以访问组件实例 `this`
     },
     beforeRouteleave(to,from,next){
       //离开组件时调用
     }
}
</script>

后续会继续完善剩下内容,如果感觉有用,请留下宝贵的一个赞!!!!

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

推荐阅读更多精彩内容