欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue hash路由原理

錢浩然2年前8瀏覽0評論

對于Vue中的hash路由,它是一種基于瀏覽器URL后#號的前端路由方式。在使用它時,每次切換路由時,瀏覽器的URL會發(fā)生變化,但頁面不會進行刷新,從而達到單頁應(yīng)用的效果。這種路由方式的原理是在URL最后面添加#符號,并通過window.location.hash獲取到路由信息,然后根據(jù)路由信息動態(tài)渲染對應(yīng)的組件。

const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About },
{ path: '/contact', component: Contact }
];
const router = new VueRouter({
routes: routes,
mode: 'hash'
});

在上述代碼中,我們可以看到Vue中聲明路由的方式,其中mode屬性設(shè)置為hash。這表明我們在使用Vue Router時,將采用hash路由的方式。

在實現(xiàn)hash路由時,我們需要通過window.location.hash獲取到當前的hash值,并且在hash值變化時觸發(fā)一個事件來重新渲染組件。這里我們可以使用瀏覽器提供的onhashchange事件來實現(xiàn)。

window.addEventListener('hashchange', function () {
// 根據(jù)當前hash值渲染對應(yīng)的組件
});

另外,我們還需要處理路由地址中的參數(shù)和查詢參數(shù)。在hash路由中,參數(shù)通常被寫在路由地址中,而查詢參數(shù)則被寫在hash符號后面的“?”和“&”中。所以,我們需要通過解析window.location.hash來獲取到參數(shù)和查詢參數(shù)。

const hash = window.location.hash.replace(/^#\/?/, '');
const [path, query] = hash.split('?');

在解析出路由地址和查詢參數(shù)后,我們可以通過Vue Router提供的router.replace方法來改變URL,達到切換路由的效果。

router.replace({
path: '/about',
query: { foo: 'bar' }
})

此外,還需要注意的是在使用hash路由時,我們應(yīng)該避免直接使用a標簽的href屬性來切換路由,因為這樣會導(dǎo)致瀏覽器進行頁面刷新,而我們想要的是單頁應(yīng)用的效果。所以,我們應(yīng)該使用Vue Router提供的router-link組件來切換路由。

About

綜上所述,Vue中的hash路由是通過在URL地址中添加#符號,通過window.location.hash獲取到路由信息,并且在hash值變化時通過onhashchange事件重新渲染對應(yīng)的組件。在實現(xiàn)時,我們還需要解析路由地址中的參數(shù)和查詢參數(shù),并且通過Vue Router提供的方法來改變URL。