vue路由vue-router

vue路由插件,vuer Router,使vue官方的路由管理其,和vue高度耦合html

  1.vue-Router的使用vue

  

import Vue from 'vue' import Router from 'vue-router' //引入路由組件
 Vue.use(Router) new Router({ mode: 'history', //路由的兩種模式 hash 和history 默認使history模式
 routes: [ { path: '/', name: 'home', component: () => import(xxx.vue) }, { path: '/about', name: 'about', component: () => import() } ] })

  2.路由的跳轉vue-router

    this.$router.push('/path')函數

    this.$router.push({name:'routername'})post

    路由的get方式傳值this

    this.$router.push({name:'routername',query:{id:xxx}})spa

    路由的post方式傳值插件

    this.$router.push({name:'routername',params:{id:xxx}})code

  3.路由的後退component

    this.$router.go(-1) 

    this.$router.back()

  4.路由的前進

    this.$router.forward() 

  5.替換當前路由,在路由歷史中不會再出現該路由

    this.$router.replace(location)

  6.當前路由的對象屬性(必定要記得是小寫的$route,而且沒有r)

     this.$route.path   當前路由路徑 path

     this.$route.name  當前路由名稱

     this.$route.params.id  post方式傳參時,獲取id的值

     this.$route.query.id get方式傳參時獲取id的值

    this.$route.hash 當前路由的hash值,帶#

   7.linkActiveClass

    當前激活的路由的class類名,默認是"router-link-active"

  8.scrollBehavior 

    切換路由時頁面滾動到具體位子

  9.router-link 中的tag標籤,生成具體的標籤的html 元素

  10.router-view 路由組件具體渲染的地方

  11.所有的路由鉤子函數(導航首位)

    11.1router.beforeEach  全局前置首位

    11.2router.beforeResolve 全局解析守衛

    11.3router.afterEach 全局後置守衛

    11.4beforeEnter 路由獨享守衛

    組件內守衛

    11.5beforerouteEnter 進入

    11.6beforerouteUpdate  更新

    11.7beforerouteLeave 離開

    

/* 全局前置守衛 */ router.beforeEach(function (to, from, next) { // to 將要進路的路由 route
  // from 離開的路由 route
  // next 進入下一個路由,不調用則不會進入下一個路由
  console.log('全局前置守衛') next() }) /* 全局解析守衛 */ router.beforeResolve((to, from, next) => { // to 將要進路的路由 route
  // from 離開的路由 route
  console.log('全局解析守衛') next() }) /* 全局後置守衛 */ router.afterEach((to, from) => { // to 將要進路的路由 route
  // from 離開的路由 route
  console.log('全局後置守衛') })
/* 組件獨享守衛 */ beforeEnter(to, from, next) { console.log('組件內獨享守衛') next() }
beforeRouteEnter(to, from, next) { console.log('組件內守衛進入') next() }, beforeRouteUpdate(to, from, next) { console.log('組件內守衛更新') next() }, beforeRouteLeave(to, from, next) { console.log('組件內守衛離開前') next() }

  執行順序,

    1.前組件內守衛離開

    2.全局前置守衛

    3.路由獨享守衛

    4.組件內守衛進入

    5.全局解析守衛

    6.全局後置守衛

  或者時刷新組件時(/about 跳轉到/about?id=1111)

    1.全局前置守衛

    2.組件內守衛更新

    3.全局解析守衛

    4.全局後置守衛

相關文章
相關標籤/搜索