欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue Router添加全局$router屬性的示例詳解

 更新時間:2023年11月23日 09:01:14   作者:BNTang  
這篇文章主要介紹了Vue-Router-添加全局$router屬性,在 Vue 中有一個 mixin 方法,這個方法會在每個組件創(chuàng)建之前被調(diào)用,我們可以在這個方法中將 VueRouter 實例掛載到 Vue 實例上,本文給大家介紹的非常詳細,需要的朋友可以參考下

前言

經(jīng)過上一篇文章的介紹,完成了初始化路由相關信息的內(nèi)容,接下來我們需要將路由信息掛載到Vue實例上,這樣我們就可以在Vue實例中使用路由信息了。

簡而言之就是給每一個Vue實例添加一個$router屬性,這個屬性就是我們在上一篇文章中創(chuàng)建的VueRouter實例。

實現(xiàn)思路

我們需要在Vue實例創(chuàng)建之前,將VueRouter實例掛載到Vue實例上,這樣我們就可以在Vue實例中使用$router屬性了。

在我們實現(xiàn)的 NueRouter 時,我們通過 Vue.use 來安裝好我們的路由插件,那么在編寫插件中有一個 install 方法,這個方法會在 Vue.use 時被調(diào)用,我們可以在這個方法中將 VueRouter 實例掛載到 Vue 實例上。

在 Vue 中有一個 mixin 方法,這個方法會在每個組件創(chuàng)建之前被調(diào)用,我們可以在這個方法中將 VueRouter 實例掛載到 Vue 實例上。

重寫 beforeCreate 方法,將 VueRouter 實例掛載到 Vue 實例上。在 beforeCreate 方法中,我們可以通過 this.$options.router 獲取到我們在 new Vue 時傳入的 router 對象,然后將這個對象掛載到 Vue 實例上。如果通過 this.$options.router 獲取到了 router 對象,那么就說明這個 Vue 實例是根實例,我們就可以將 router 對象掛載到 Vue 實例上了。

如果獲取不到 router 對象,那么就說明這個 Vue 實例不是根實例,我們就需要將父組件的 router 對象掛載到 Vue 實例上。

大致思路就是這樣,接下來我們來實現(xiàn)一下。

代碼實現(xiàn)

NueRouter.install = (Vue, options) => {
    Vue.mixin({
        beforeCreate() {
            if (this.$options && this.$options.router) {
                this.$router = this.$options.router;
                this.$route = this.$router.routerInfo;
            } else {
                this.$router = this.$parent.$router;
                this.$route = this.$router.routerInfo;
            }
        }
    })
}

如上的代碼就是我們實現(xiàn)的思路,我們通過 this.$options.router 獲取到我們在 new Vue 時傳入的 router 對象,然后將這個對象掛載到 Vue 實例上。如果獲取不到 router 對象,那么就說明這個 Vue 實例不是根實例,我們就需要將父組件的 router 對象掛載到 Vue 實例上。

測試

接下來就是我們平時要進行的測試了,分別在各個組件當中打印一下 $router$route 屬性,看看是否掛載成功。

App.vue:

mounted() {
    console.log("App", this.$router);
    console.log("App", this.$route);
}

Home.vue:

mounted() {
    console.log("Home", this.$router);
    console.log("Home", this.$route);
}

About.vue:

mounted() {
    console.log("About", this.$router);
    console.log("About", this.$route);
}

最后我們來看一下效果:

可以看到我們的路由信息已經(jīng)掛載到 Vue 實例上了。

最后

到這里我們就完成了將路由信息掛載到 Vue 實例上的功能,接下來下一篇文章我會帶著大家來實現(xiàn) 實現(xiàn)router-link

到此這篇關于Vue-Router-添加全局$router屬性的文章就介紹到這了,更多相關Vue Router $router屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue-print-nb只打印一頁解決方法示例

    vue-print-nb只打印一頁解決方法示例

    這篇文章主要為大家介紹了vue-print-nb只打印一頁解決方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2023-11-11
  • 一篇文章帶你了解Vue組件的創(chuàng)建和使用

    一篇文章帶你了解Vue組件的創(chuàng)建和使用

    這篇文章主要為大家介紹了Vue組件的創(chuàng)建和使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 如何使用vue3+uni-app封裝音樂播放插件

    如何使用vue3+uni-app封裝音樂播放插件

    UniApp是一個基于Vue.js開發(fā)的跨平臺應用開發(fā)框架,它可以使用一套代碼同時構(gòu)建iOS、Android和Web應用,這篇文章主要給大家介紹了關于如何使用vue3+uni-app封裝音樂播放插件的相關資料,需要的朋友可以參考下
    2023-11-11
  • vue3父子組件傳值?雙向綁定及注意問題小結(jié)

    vue3父子組件傳值?雙向綁定及注意問題小結(jié)

    這篇文章主要介紹了Vue3中如何通過v-model實現(xiàn)父子組件的雙向數(shù)據(jù)綁定及利用computed簡化父子組件雙向綁定,本文結(jié)合示例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • vue項目Network: unavailable的問題及解決

    vue項目Network: unavailable的問題及解決

    這篇文章主要介紹了vue項目Network: unavailable的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Vue項目中對index.html中BASE_URL的配置方式

    Vue項目中對index.html中BASE_URL的配置方式

    這篇文章主要介紹了Vue項目中對index.html中BASE_URL的配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue3項目中的el-carousel 輪播圖的使用

    vue3項目中的el-carousel 輪播圖的使用

    Carousel(走馬燈)是一種常見的前端組件,通常用于展示多個項目(通常是圖片或內(nèi)容塊)的輪播效果,這篇文章主要介紹了vue3項目中的el-carousel 輪播圖的使用,需要的朋友可以參考下
    2024-02-02
  • vue的狀態(tài)更新方式(異步更新解決)

    vue的狀態(tài)更新方式(異步更新解決)

    這篇文章主要介紹了vue的狀態(tài)更新方式(異步更新解決),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue CLI4.0 webpack配置屬性之productionSourceMap用法

    Vue CLI4.0 webpack配置屬性之productionSourceMap用法

    這篇文章主要介紹了Vue CLI4.0 webpack配置屬性之productionSourceMap用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue路由篇之router-view內(nèi)容無法渲染出來問題

    vue路由篇之router-view內(nèi)容無法渲染出來問題

    這篇文章主要介紹了vue路由篇之router-view內(nèi)容無法渲染出來問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論