最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解vue中$router和$route的區(qū)別

 更新時間:2021年05月11日 14:45:23   作者:sugar_coffee  
這篇文章主要介紹了vue中$router和$route的區(qū)別,對vue感興趣的同學,一定要看下

我們在 vue 項目中一般都會用到路由,而 vue-router 是 vue.js 官方的路由管理器。

this.$route:當前激活的路由的信息對象。每個對象都是局部的,可以獲取當前路由的 path, name, params, query 等屬性。

this.$router:全局的 router 實例。通過 vue 根實例中注入 router 實例,然后再注入到每個子組件,從而讓整個應用都有路由功能。其中包含了很多屬性和對象(比如 history 對象),任何頁面也都可以調用其 push(), replace(), go() 等方法。

用過 vue 的童鞋都知道,路由跳轉分為編程式和聲明式。

聲明式:

簡單來說,就是使用 router-link 組件來導航,通過傳入 to 屬性指定鏈接(router-link 默認會被渲染成一個a標簽)。

當需要在一個頁面中嵌套子路由,并且頁面不跳轉的時候,這種方式不要太好用啊哈哈哈... 只需要將子頁面渲染在 router-view 里面就可以了。

編程式:

采用這種方式就需要導入 VueRouter 并調用了。

然后我再來嘮嘮 vue-router 的使用步驟(以下采用編程式方式):

1.定義兩個路由跳轉的單 .vue 組件:home.vue 和 user.vue;

2.導入 vue, vue-router,并定義路由,每個路由包含一個 component 屬性,這個屬性映射一個組件 --- router.js

import Vue from 'vue'
import Router from 'vue-router'

import Home from './home.vue'
import User from './user.vue'

Vue.use(Router);

3.創(chuàng)建 router 實例,并傳遞 routes 配置 --- router.js

const routes = [
    { path: '/home', component: Home },
    { path: '/user', component: User }
]

const router = new Router({
    routes
})

4.在 vue 根實例中注入路由,這樣就可以在其他任何組件中訪問路由了 --- main.js

import router from './router'

new Vue({
    router,
    render: h => h(App)
}).$mount('#app')

大體步驟就以上這些

好了,咱們的豬腳要開始現(xiàn)身了﹏~*在上面 user 和 home 組件內訪問路由有兩種方式:this.$router和this.$route。這兩種方式使用起來大致一樣,但還是有區(qū)別。(以下顯示的)

可以看到this.$route 顯示了當前激活的路由的信息對象。這個對象是局部的,可以獲取當前路由的 path, name, params, query 等屬性,這里就不細說了。

其中$route.matched是一個數(shù)組,包含了當前路由的所有嵌套記錄,即 routes 配置中的對象數(shù)組,包括 自己的信息和 children 數(shù)據(jù)。比如我的 routes 配置為:

const router = new VueRouter({
  routes: [
    // 下面的對象就是路由記錄
    {
      path: '/taskList',
      component: TaskList,
      name: '任務列表',
      children: [
        {
          path: '/taskDetail',
          component: TaskDetail,
          name: '任務詳情'
        }
      ]
    }
  ]
})

得到的 this.$route 中 matched 展開結果為:

比如用導航守衛(wèi)做登錄功能時,若需要檢測 meta 來判斷是否需要登錄的情況時,就可以通過遍歷 $route.matched 來檢查路由記錄中的 meta 字段。

此外,在 vue 實例內部,還可以通過this.$router訪問路由實例,它是一個全局的路由實例,通過 vue 根實例中注入 router 實例,然后再注入到每個子組件,從而讓整個應用都有路由功能。在任何子組件中打印 this.$router 得到如下:

其中包含了很多屬性和對象(比如 history 對象),任何頁面也都可以調用其 push(), replace(), go() 等方法。

push()方法會向 history 中添加一個記錄,當點擊瀏覽器的返回按鈕時可以退回到前一個頁面,當我們點擊 <router-link to=' ... ' /> 時等同于調用了 this.$router.push()。

  • this.$router.push() 方法的參數(shù)可以是一個字符串路徑,或則是一個地址對象,例如:
  • this.$router.push('home') this.$router.push({path: 'home'})

也可以攜帶參數(shù),但是要注意:如果提供了 path, params 會被忽略,例如:

this.$router.push({path: 'home', params: { page: 2}}) 這里的params會被忽略

同樣的規(guī)則也適用于 router-link 的 to 屬性

可以使用以下幾種方法:

  • this.$router.push({path: `/home/${page=2}``})
  • this.$router.push({name: 'home', params: { page: 2}})
  • this.$router.push({path: 'home', query: { page: 2}})

這幾種方法獲取參數(shù)的方式:this.$route.params.page / this.$route.query.page

以上就是詳解vue中$router和$route的區(qū)別的詳細內容,更多關于vue的資料請關注腳本之家其它相關文章!

相關文章

  • Vue如何實現(xiàn)驗證碼輸入交互

    Vue如何實現(xiàn)驗證碼輸入交互

    這篇文章主要介紹了Vue實現(xiàn)驗證碼輸入交互的示例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-12-12
  • Vue中使用eslint和prettier格式化代碼方式

    Vue中使用eslint和prettier格式化代碼方式

    這篇文章主要介紹了Vue中使用eslint和prettier格式化代碼方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 基于vue-cli vue-router搭建底部導航欄移動前端項目

    基于vue-cli vue-router搭建底部導航欄移動前端項目

    這篇文章主要介紹了基于vue-cli vue-router搭建底部導航欄移動前端項目,項目中主要用了Flex布局,以及viewport相關知識,已達到適應各終端屏幕的目的。需要的朋友可以參考下
    2018-02-02
  • Vue2單一事件管理組件通信

    Vue2單一事件管理組件通信

    這篇文章主要為大家詳細介紹了Vue2單一事件管理組件通信的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • nuxt 每個頁面head標簽內容設置方式

    nuxt 每個頁面head標簽內容設置方式

    這篇文章主要介紹了nuxt 每個頁面head標簽內容設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue Element前端應用開發(fā)之菜單資源管理

    Vue Element前端應用開發(fā)之菜單資源管理

    在權限管理系統(tǒng)中,菜單也屬于權限控制的一個資源,屬于角色控制的一環(huán)。不同角色用戶,登錄系統(tǒng)后,出現(xiàn)的系統(tǒng)菜單是不同的。菜單結合路由集合,實現(xiàn)可訪問路由的過濾,也就實現(xiàn)了對應角色菜單的展示和可訪問路由的控制。
    2021-05-05
  • 一文掌握Pinia使用及數(shù)據(jù)持久化存儲超詳細教程

    一文掌握Pinia使用及數(shù)據(jù)持久化存儲超詳細教程

    這篇文章主要介紹了Pinia安裝使用及數(shù)據(jù)持久化存儲的超詳細教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Vue中this.$router和this.$route的區(qū)別及push()方法

    Vue中this.$router和this.$route的區(qū)別及push()方法

    這篇文章主要給大家介紹了關于Vue中this.$router和this.$route的區(qū)別及push()方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Vue路由組件通過props配置傳參的實現(xiàn)

    Vue路由組件通過props配置傳參的實現(xiàn)

    本文主要介紹了Vue路由組件通過props配置傳參的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 詳解vue的Des加密解密

    詳解vue的Des加密解密

    這篇文章主要為大家介紹了vue的Des加密解密使用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論

广昌县| 乐陵市| 乌兰县| 迁安市| 五莲县| 赣州市| 萨迦县| 通许县| 宜良县| 康马县| 富裕县| 全州县| 原阳县| 车险| 社会| 阿巴嘎旗| 越西县| 隆尧县| 鹤岗市| 成武县| 贵港市| 勃利县| 年辖:市辖区| 湛江市| 河南省| 滨州市| 鄢陵县| 靖宇县| 台州市| 新建县| 琼中| 怀来县| 尉氏县| 谢通门县| 陆丰市| 荣昌县| 临海市| 汝城县| 清徐县| 潢川县| 城口县|