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

vue router 組件的高級應用實例代碼

 更新時間:2019年04月08日 08:27:03   作者:deniro  
這篇文章主要介紹了vue-router 組件的高級應用,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

1 動態(tài)設置頁面標題

頁面標題是由 <title></title> 來控制的,因為 SPA 只有一個 HTML,所以當切換到不同的頁面時,標題是不會發(fā)生變化的。必須通過 JavaScript 來修改 <title></title> 中的內(nèi)容:

window.document.title ='xxx'

有一種思路是在每個頁面的 *.vue 的 mounted 鉤子函數(shù)中,通過 JavaScript 來修改 <title></title> 中的內(nèi)容。這種方式固然可行,但如果頁面很多,就會顯著增加維護成本,而且修改邏輯都是一樣的。有沒有更好的方法呢?

我們可以利用 vue-router 組件的導航鉤子 beforeEach 函數(shù),在路由發(fā)生變化時,統(tǒng)一設置。

import VueRouter from 'vue-router';
...

//加載 vue-router 插件
Vue.use(VueRouter);

/*定義路由匹配表*/
const Routers = [{
 path: '/index',
 component: (resolve) => require(['./router/views/index.vue'], resolve),
 meta: {
  title: '首頁'
 }
},
 //一次性加載
 // {
 //  path: '/index',
 //  component: require('./router/views/index.vue')
 // },
 {
  path: '/about',
  component: (resolve) => require(['./router/views/about.vue'], resolve),
  meta: {
   title: '關于'
  }
 },
 {
  path: '/article/:id',
  component: (resolve) => require(['./router/views/article.vue'], resolve)
 }
 ,
 {//當訪問的頁面不存在時,重定向到首頁
  path: '*',
  redirect: '/index'
 }
]
//路由配置
const RouterConfig = {
 //使用 HTML5 的 History 路由模式
 mode: 'history',
 routes: Routers
};
//路由實例
const router = new VueRouter(RouterConfig);
//動態(tài)設置頁面標題
router.beforeEach((to, from, next) => {
 window.document.title = to.meta.title;
 next();
})
new Vue({
 el: '#app',
 router: router,
 render: h => h(Hello)
})

我們在路由匹配表中,為那些需要標題的頁面,配置了 meta title 屬性:

meta: {
  title: 'xxx'
}

然后在 beforeEach 導航鉤子函數(shù)中,從路由對象中獲取 meta title 屬性,用于標題設置。beforeEach 有三個入?yún)ⅲ?/p>

參數(shù) 說明

參數(shù) 說明
to 當前導航,即將要進入的路由對象。
from 當前導航,即將要離開的路由對象。
next 調用 next() 之后,才會進入下一步。

效果:

2 長頁面跳轉自動返回頂端

假設第一個頁面較長,用戶滾動查看到底部,這時如果又跳轉到另一個頁面,那么滾動條是會默認停在上一個頁面的所在位置的。這種場景比較好的設計是:跳轉后會自動返回頂端。這可以通過 afterEach 鉤子函數(shù)來實現(xiàn),代碼如下:

router.afterEach((to, from, next) => {
 window.scrollTo(0, 0);
});

組合使用 beforeEach 與 afterEach,還可以實現(xiàn):從一個頁面跳轉到另一個頁面時,出現(xiàn) Loading 動畫,當新頁面加載后,再結束動畫。

3 登陸驗證

某些頁面設置了權限,只有賬號登陸過,才能訪問;否則跳轉到登錄頁。假設我們使用 localStorage 來判斷是否登陸。

HTML5 的 localStorage 特性,用于本地存儲。它的出現(xiàn),解決了 cookie 存儲空間不足的問題 cookie 中每條 cookie 的存儲空間只有 4k) ,而 localStorage 中一般是 5M,這在不同的瀏覽器中 大小略有不同 。

router.beforeEach((to, from, next) => {
 if (window.localStorage.getItem('token')) {
  next();
 } else {
  next('/login');
 }
});

next() 入?yún)ⅲ绻?false,會不導航;如果為路徑,則會導航到指定路徑下的頁面。

總結

以上所述是小編給大家介紹的vue router 組件的高級應用實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • vue 中directive功能的簡單實現(xiàn)

    vue 中directive功能的簡單實現(xiàn)

    本篇介紹directive的簡單實現(xiàn),主要學習其實現(xiàn)的思路及代碼的設計,需要的朋友參考下吧
    2018-01-01
  • vue3封裝一個帶動畫的關閉按鈕示例詳解

    vue3封裝一個帶動畫的關閉按鈕示例詳解

    這篇文章主要為大家介紹了vue3封裝一個帶動畫的關閉按鈕示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • vue?axios接口請求封裝方式

    vue?axios接口請求封裝方式

    這篇文章主要介紹了vue?axios接口請求封裝方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue實現(xiàn)滾動鼠標滾輪切換頁面

    vue實現(xiàn)滾動鼠標滾輪切換頁面

    這篇文章主要為大家詳細介紹了vue實現(xiàn)滾動鼠標滾輪切換頁面,類似于縱向走馬燈,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 淺談一下Vue技術棧之生命周期

    淺談一下Vue技術棧之生命周期

    這篇文章主要介紹了淺談一下Vue技術棧之生命周期,每一個vue實例從創(chuàng)建到銷毀的過程,就是這個vue實例的生命周期,這些過程中會伴隨著一些函數(shù)的自調用,需要的朋友可以參考下
    2023-05-05
  • 在vue組件中使用axios的方法

    在vue組件中使用axios的方法

    下面小編就為大家分享一篇在vue組件中使用axios的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue ssr+koa2構建服務端渲染的示例代碼

    vue ssr+koa2構建服務端渲染的示例代碼

    這篇文章主要介紹了vue ssr+koa2構建服務端渲染的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 解決element ui select下拉框不回顯數(shù)據(jù)問題的解決

    解決element ui select下拉框不回顯數(shù)據(jù)問題的解決

    這篇文章主要介紹了解決element ui select下拉框不回顯數(shù)據(jù)問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • vue項目中jsonp跨域獲取qq音樂首頁推薦問題

    vue項目中jsonp跨域獲取qq音樂首頁推薦問題

    這篇文章主要介紹了vue項目中jsonp跨域獲取qq音樂首頁推薦問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • VUE中如何渲染Echarts動畫柱狀圖

    VUE中如何渲染Echarts動畫柱狀圖

    這篇文章主要介紹了VUE中如何渲染Echarts動畫柱狀圖問題,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03

最新評論