vue從入門到精通之高級篇(一)vue-router的高級用法

今天要介紹的是路由元信息,滾動行為以及路由懶加載這幾個的使用方法。

1.路由元信息

什么是路由元信息,看看官網的解釋,定義路由的時候可以配置 meta 字段可以匹配meta字段,那么我們該如何使用它,一個簡單的例子,改變瀏覽器title的值。下面上代碼。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//簡單的我就不寫了直接上解決方案

import Vue from 'vue'

import Router from 'vue-router'

import Login from '../login/Login'

import Home from '../pages/Home'

export default new Router({

??mode: 'history',

??routes: [

????{path: 'home', name: 'Home', component: Home,meta:{title:"主頁"}}

????{path: 'login', name: 'Login', component: Login,meta:{title:"登錄"}}

??]

})

//可以在跳轉之前判斷跳轉的組件的名字并用window.document.title賦值

Router.beforeEach((to,from,next) => {

??window.document.title=to.meta.title

})

上面的是不是看上去很簡單呢,但是它并不簡單,我只是舉了一個比較小的例子罷了。還要看大家怎么活學活用這樣才好,但是我強調幾點需要注意的

第一點就是這個beforeEach頁面跳轉之前調用,好處是比如想要改變title的值不會顯得太突兀,可以直接替換。

第二點afterEach這個不用我說了吧這個是在組件跳轉之后調用比較適用于返回頁面之前瀏覽過的區域或者是讓頁面返回頂部的操作。

2.滾動行為

想必各位同學應該知道我要講些什么了沒錯就是頁面的前進和后退時的滾動事件,怎么實現呢,有兩種實現方式,先看代碼。

?

1

2

3

4

//剛才我說過的方法直接使用afterEach方法去實現組件的scrollTo歸零

Router.afterEach((to,from,next) => {

??window.scrollTo(0,0)

})

下面是真正的回滾事件可以看看

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

//簡單的我就不寫了直接上解決方案

import Vue from 'vue'

import Router from 'vue-router'

import Login from '../login/Login'

import Home from '../pages/Home'

export default new Router({

??mode: 'history',

??routes: [

????{path: 'home', name: 'Home', component: Home,meta:{title:"主頁"}}

????{path: 'login', name: 'Login', component: Login,meta:{title:"登錄"}}

??],

??//有兩種小的方式進行回滾

??//{ x: number, y: number }

??//{ selector: string, offset? : { x: number, y: number }}

??//第二種方式僅適用于(offset 只在 2.6.0+ 支持)

??scrollBehavior (to, from, savedPosition) {

??console.log(savedPosition)

??return { x: 0, y: 0 }

??}

})

上面我們介紹了scrollBehavior的回滾方法或者說是scrollBehavior的滾動行為,但是想必大家可能對這種方法還有些不太理解,下面我們看看官網是怎么講解的,使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時頁面如何滾動。沒錯這個方法就是scrollBehavior滾動行為。另外需要注意: 這個功能只在支持 history.pushState 的瀏覽器中可用。更多的使用方法可以去官網去看看。

3.路由懶加載

或許不應該叫路由懶加載應該叫按需加載我覺著是更合適的。不解釋以后用多了你們就會理解。下面上代碼。

?

1

2

//代碼很簡單看看就知道了,下面只貼部分代碼

{path:'homepages',name:'Homepages',component:homepages,resolve}

沒錯只要使用resolve就能實現按需加載的要求,是不是很簡單,但是resolve還有很多其他使用方式建議去官網看看。另外諸如go(),history等方法的使用還是去官網上看看自己寫出來理解會更快。

總結

以上所述是小編給大家介紹的Vue router的部分高級用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249108.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 數組實現堆棧操作

class Stack {private int stck[] ; private int tos ; Stack(int size) { // 一個參數的構造參數stck new int[size] ; // 創建數組(創建堆棧)tos -1 ; // 空堆棧標識 -1}// 堆棧操作的特性:先進后出、后進先出void push(int…

re模塊

什么是正則表達式 一組特殊符號組成的表達式,用于描述某種規則。該應用場景生活中隨處可見。 例如:讓有志青年過上體面的生活,這里面就由規則,即有志青年。 正則表達式的作用,以及使用場景 用于從字符串中匹配滿足某種…

CSS實現div梯形分割

原理 使用的border邊框屬性結合svg 轉換 詳見代碼 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>css實現div邊框斜角</title><style type"text/css"> .labels {display: i…

算法學習——決策單調性優化DP

update in 2019.1.21 優化了一下文中年代久遠的代碼 的格式…… 什么是決策單調性&#xff1f; 在滿足決策單調性的情況下&#xff0c;通常決策點會形如1111112222224444445555588888..... 即不可能會出現后面點的決策點小于前面點的決策點這種情況。 那么這個性質應該如何使用…

SVG畫一個箭頭

參考菜鳥手冊&#xff1a; https://www.runoob.com/svg/svg-tutorial.html 打開菜鳥中的在線工具 在可視化截圖拖拉元素繪制箭頭 點擊command U 查看源碼 將源碼拷入html代碼中&#xff0c;查看效果 最后&#xff0c;貼出源碼供大家參考 <!DOCTYPE html> <…

HP Instant Information

HP Instant Information before HP-UX 11i v3 《管理系統和工作組&#xff1a;HP-UX系統管理員指南》 After HP-UX 11i v3 《HP-UX系統管理指南》(由多個文檔組成的文檔集) 《HP-UX系統管理員指南&#xff1a;概述》 《HP-UX系統管理員指南&#xff1a;配置管理》 《HP-UX系統管…

CodeForces 258D Little Elephant and Broken Sorting(期望)

CF258D Little Elephant and Broken Sorting 題意 題意翻譯 有一個\(1\sim n\)的排列&#xff0c;會進行\(m\)次操作&#xff0c;操作為交換\(a,b\)。每次操作都有\(50\%\)的概率進行。 求進行\(m\)次操作以后的期望逆序對個數。 \(n,m\le 1000\) 輸入輸出格式 輸入格式&#x…

記一次vue項目yarn打包環境配置失效的解決方案

項目中使用到了yarn打包工程&#xff0c;主要有以下幾個命名。 # build for production with minification yarn run build# build for production and view the bundle analyzer report yarn run build --report# 自定義API地址 baseurl"http://127.0.0.1:8080/api/&quo…

數字簽名與HTTPS詳解

因為HTTP協議本身存在著明文傳輸、不能很好的驗證通信方的身份和無法驗證報文的完整性等一些安全方面的確點&#xff0c;所以才有了HTTPS的缺陷。HTTPS確切的的說不是一種協議&#xff0c;而是HTTP SSL (TSL)的結合體。HTTP報文經過SSL層加密后交付給TCP層進行傳輸。SSL(安全套…

[BZOJ4320][ShangHai2006]Homework(根號分治+并查集)

對于<sqrt(300000)的詢問&#xff0c;對每個模數直接記錄結果&#xff0c;每次加入新數時暴力更新每個模數的結果。 對于>sqrt(300000)的詢問&#xff0c;枚舉倍數&#xff0c;每次查詢大于等于這個倍數的最小數是多少&#xff0c;這個操作通過將詢問逆序使用并查集支持。…

VScode 結局插件prettier和vetur格式化沖突

先上配置代碼 {"workbench.iconTheme": "vscode-icons","workbench.startupEditor": "newUntitledFile","workbench.colorTheme": "One Dark Pro","editor.fontSize": 14,"editor.tabSize":…

WPF效果(GIS三維續篇)

去年這個時候簡單的摸索了一下三維的GIS相關的東西,也就是僅僅玩耍了一把,這次來點真正用的上的干貨效果效果&#xff1a; 1、加載自定義百度樣式的瓦片效果 2、加載自定義百度樣式的縮放效果 3、快速手動進去咱的大帝都 4、加載海量Mark效果 5、加載海量Mark和簡單模型效果 6、…

vue 表單 驗證 async-validator

1、使用插件async-validator async-validator 地址&#xff1a;https://github.com/yiminghe/async-validator 2、示例&#xff08;vueelement-ui&#xff09; <el-form :model"numberValidateForm" ref"numberValidateForm" label-width"100px&qu…

[19/04/23-星期二] GOF23_創建型模式(工廠模式、抽象工廠模式)

一、工廠模式(分為&#xff1a;簡單工廠模式、工廠方法模式、抽象工廠模式) 實現了創建者和調用者的分離 核心本質&#xff1a;1、實例化對象&#xff0c;用工廠方法代替new操作&#xff1b;2、將選擇實現類、創建對象統一管理和控制&#xff0c;從而將調用者跟實現類解耦。 簡…

Chrome瀏覽器12px問題-webkit-text-size-adjust: none 已失效的解決方案

對于早期的chrome, 如果要想顯示12px以下的字體&#xff0c;一般通用的方案都是在對應的元素中添加 div {-webkit-text-size-adjust: none; }但是我今天遇到的需求&#xff0c;添加了之后沒有反應&#xff0c;而且瀏覽就根本不支持這種寫法。 在網上看到了博客《Chrome瀏覽器…

CSRFGuard工具介紹

理解CSRFGuard的基礎&#xff1a;http://www.runoob.com/jsp/jsp-tutorial.html 1&#xff1a;您需要做的第一件事是將OWASP.CSRFARGAD.JAR庫復制到類路徑中。放置Owasp.CsrfGuard.jar最常見的類路徑位置在Web應用程序的WEB-INF文件夾的lib目錄中。 OWASP CSRFGARD 3在傳統Java…

[19/04/24-星期三] GOF23_創建型模式(建造者模式、原型模式)

一、建造者模式 本質&#xff1a;分離了對象子組件的單獨構造(由Builder負責)和裝配的分離(由Director負責)&#xff0c;從而可以構建出復雜的對象&#xff0c;這個模式適用于&#xff1a;某個對象的構建過程十分復雜 好處&#xff1a;由于構建和裝配的解耦&#xff0c;不同的構…

深入理解vue中的slot與slot-scope

寫在前面 vue中關于插槽的文檔說明很短&#xff0c;語言又寫的很凝練&#xff0c;再加上其和methods&#xff0c;data&#xff0c;computed等常用選項在使用頻率、使用先后上的差別&#xff0c;這就有可能造成初次接觸插槽的開發者容易產生“算了吧&#xff0c;回頭再學&#…

js 轉義

1. JavaScript 特殊字符 2. 正反斜杠互相替換 a/b/c.replace(/\//g,\\) // "a\b\c" $0.value.replace(/\\/g,\/) // a/b/c 獲取到 而不提取出 某個值后進行直接處理 \ 有轉義功能&#xff0c;所以一旦解析必然轉義&#xff0c;通常是直接獲取到數據源…

關于Java抽象類,接口與實現接口及派生類繼承基類

1. 抽象類 抽象類就是有一個或多個方法只被聲明而未被實現。 抽象方法的聲明以分號結束&#xff0c;并且用關鍵字abstract來說明它以標識它為抽象方法。 格式&#xff1a; public abstract class 類名{ 定義變量// 抽象方法// } 2. 接口是抽象類的一種&#xff0c;之包含常量…