vue-router 通過路由來實現切換頭部標題

来源:https://www.cnblogs.com/whnba/archive/2019/04/24/10760896.html
-Advertisement-
Play Games

在做單頁面應用程式時,一般頁面佈局頭尾兩塊都是固定在佈局頁面,中間為是路由入口。這時訪問頁面時頭部標題不會變,該問題的解決方案如下: 通過採用組件內路由衛士(beforeRouterEnter、beforeRouterUpdate)與路由元信息(meta) 來實現更新頭部標題信息。點擊查看文檔 be ...


在做單頁面應用程式時,一般頁面佈局頭尾兩塊都是固定在佈局頁面,中間為是路由入口。這時訪問頁面時頭部標題不會變,該問題的解決方案如下:

通過採用組件內路由衛士(beforeRouterEnter、beforeRouterUpdate)與路由元信息(meta) 來實現更新頭部標題信息。點擊查看文檔

beforeRouterEnter:第一次進入時調用。

beforeRouterUpdate:重覆使用當前組件時調用。

效果圖如下:

註意看頁面標題圖標變換

 

 路由元信息(meta)配置

在路由元信息中配置頁面標題,通過組件內路由衛士獲取

const router = new Router({
    mode: 'history',
    base: process.env.BASE_URL,
    routes: [
        {
            path: "help",
            name: "help",
            meta: {
                title: "新手幫助"
            },
            component: () => import('./views/Help.vue')
        },
        {
            path: "page",
            name: "page",
            meta: {
                title: "寶貝信息"
            },
            component: () => import('./views/Page.vue')
        }
    ]
})

 

路由佈局頁面

 header 與 footer 是固定頭尾, main為路由入口。 title為頁面標題

<template>
    <div id="app">
        <header class="header">
            <button @click="back" class="t-xiaoxi iconfont" v-html="icon"></button>
            <h1 class="t-title">{{title}}</h1>
            <router-link to="/search" class="t-sousuo iconfont">&#xe611;</router-link>
        </header>
        <div class="main">
            <router-view></router-view>
        </div>
        <footer class="footer">
      // ... </footer> </div> </template>

beforeRouteEnterbeforeRouteUpdate函數中獲取路由元信息,並更新頁面標題。
beforeRouteEnter:當第一次進入時,會被標題進行一次初始化操作
beforeRouteUpdate
:當組件被重覆調用時,執行更新操作。
<script>
    export default {
        name: "app",
        data() {
            return {
                title: "我的網站",
                url: '/',
                icon: '&#xe627;'
            }
        },
        methods: {
            back() {
                this.$router.go(this.url);
            },
            update(route) {
                [this.title, this.url, this.icon] = ["我的網站", '/', '&#xe627;'];
                if (!['', '/'].includes(route.path)) { // 判斷是否根頁面,用於切換標題與返回上一頁或回到主頁
                    [this.title, this.url, this.icon] = [route.meta.title || "", '-1', '&#xe81e;'];
                }
            }
        },
        beforeRouteEnter(to, from, next) {
            next(vm => {  //回調函數,此時this指針不可用,可採用回調函數訪問。
                vm.update(to);
            })
        },
        beforeRouteUpdate(to, from, next) {
            this.update(to);
            next();
        }
    };
</script>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • WordPress的打開速度慢會影響到用戶體驗和關鍵詞的穩定排名,WordPress為什麼載入慢呢?其實很簡單的,就是WordPress水土不服,用WordPress的大家都知道,WordPress是外國人開發的,在國內用肯定會卡的,今天筆者給大家整理了幾個解決各種WordPress慢的慢的問題,希 ...
  • span設置部分省略...: span{ overflow: hidden; text-overflow: ellipsis; -o-text-overflow: ellipsis; white-space:nowrap; width:240px; height:24px; display:bloc ...
  • 1,如何將JS中ajax的非同步請求改為同步? Ajax請求預設的都是非同步的 如果想同步 async設置為false就可以(預設是true) var html = $.ajax({ url: "some.PHP", async: false }).responseText; 或者在全局設置Ajax屬性 ...
  • 今天我們來摺紙飛機(可以飛出去的那種哦) 基本全用css來實現,只有一小部分的js 首先看一下飛機的構造 灰色區域為可摺疊區域 白色區域為機身 三角形由border畫出來的再經過各種平移翻轉變成上圖 寫之前再補充個知識點: 我們顏色的設置不用rgba, 用hsl() h: 色調 0- 360 0(或 ...
  • 瀏覽器支持兩種類型的漸變:線性漸變 (linear-gradient),徑向漸變 (radial-gradient) 漸變在 CSS 中屬於一種 Image 類型,可以結合 background-image 屬性使用 和圖片不同的是,漸變不需要引入,而是由代碼直接生成的,所以比圖片更高效易用 一、簡 ...
  • 個人學習筆記 1.JQuery事件綁定 2.JQuery事件解綁 3.JQuery事件冒泡和預設行為和事件的自動觸發 4.JQuery自定義事件 5.JQuery事件的命名空間 6.JQuery事件委托 7.JQuery事件委托練習 8.JQuery的事件移入和移出 9.移入移出練習一 10.移入移 ...
  • CSSREM CSSREM 是一個CSS的 px 值轉 rem 值的Sublime Text3自動完成插件。先來看看插件的效果: 一個CSS的px值轉rem值的Sublime Text 3自動完成插件。 下載本項目,比如:git clone https://github.com/flashlizi/ ...
  • 今天在調試一個後臺的介面的時候,突然發現在network中找不到我發送的請求,也就是說,ajax沒有在瀏覽器的network中沒有顯示。。。。。第一次遇見這樣的情況,很苦惱,然後使用ajax中的error函數,看到了下麵的列印數據。 然後繼續網上百度“No Transport”的問題,發現網上大部分 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...