Vue路由原理

2022-09-18 17:12:11 字數 1637 閱讀 8363

模式:

hash路由的關鍵在於:在router-link中,呼叫window.location.hash改變頁面的hash值,然後在router-view中在window物件上監聽hashchange事件。

router-link:

<

template

>

<

div>

<

span

@click

="jump"

>

<

slot

>

slot

>

span

>

div>

template

>

<

script

>

export

default

}}script

>

view code

router-view:

<

template

>

<

div>

<

component

:is='componentid'

>

component

>

div>

template

>

<

script

>

import recommend from

'../components/recommend

'import singer from

'../components/singer

'import rank from

'../components/rank

'export

default

), components: ,

created () ,,]

window.addeventlistener(

'hashchange

', ()

=>

})})

}}script

>

view code

history路由的關鍵在於:h5 history新增了兩個api:history.pushstate和history.replacestate

兩個api都接受3個引數

以及在router-view中監聽popstate事件

當活動歷史記錄條目更改時,將觸發popstate事件。

需要注意的是呼叫history.pushstate()或history.replacestate()不會觸發popstate事件,只有在做出瀏覽器動作時,才會觸發該事件,如使用者點選瀏覽器的回退按鈕。

router-link關鍵**:

jump()
view code

router-view關鍵**:

window.addeventlistener('popstate', () => 

})})

view code

其餘**與hash路由示例一樣

當然這裡只是簡單的攤訴了路由的實現原理,如果要深入了解vue的路由實現機制的可以檢視vue的原始碼。

參考:

Vue路由原理

知道路由的方便之處下面是它兩種模式的原理 預設是hash hash 通過位址列進行切換 不利於搜尋引擎優化 首先他利用了瀏覽器對於hash這種當時不進行重新整理,然後通過hashchange監聽hash的改變來進行dom的重新渲染,改變元件引進乙個新元件 function render window...

vue路由實現原理

路由需要實現的功能 1.改變url且不讓瀏覽器向伺服器發出請求 2.監測 url 的變化 3.截獲 url 位址,並解析出需要的資訊來匹配路由規則。前端目前只有2種模式 1.hash模式 ie8 用a標籤或者window.location.hash設定雜湊值。window.addeventliste...

vue路由或者前端路由的實現原理

1 利用h5中的history api 實現 主要利用history.pushstatae和history.replacestate來實現,不同之處在於,pushstate會增加一條新的歷史記錄,而replacestate則會替換當前的歷史記錄,並且再用該方法發布專案時,還需配置一下apache。2...