色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue history 模式回退

Vue.js是一個(gè)漸進(jìn)式JavaScript框架,旨在構(gòu)建用戶界面。其中,Vue Router是Vue.js官方的路由管理器,可以很方便地實(shí)現(xiàn)前端路由。在Vue Router中,有兩種路由模式,一種是hash模式,另一種是history模式。

history模式可以讓URL看起來(lái)更像是傳統(tǒng)的URL,例如http://example.com/user/profile,而不是帶有#的URL,例如http://example.com/#/user/profile。在history模式中,Vue Router使用HTML5的History API來(lái)實(shí)現(xiàn)路由模式的轉(zhuǎn)換。

const router = new VueRouter({
mode: 'history',
})

當(dāng)用戶在使用history模式時(shí),如果點(diǎn)擊了瀏覽器的后退按鈕(或前進(jìn)按鈕),頁(yè)面并不會(huì)像正常刷新一樣重新渲染。相反,瀏覽器會(huì)向前或向后地執(zhí)行歷史記錄中的導(dǎo)航,并在Vue Router中調(diào)用對(duì)應(yīng)的路由回調(diào)函數(shù)。

Vue Router中的路由回調(diào)函數(shù)是以組件的形式定義的。每個(gè)路由都對(duì)應(yīng)著一個(gè)組件,當(dāng)路由被觸發(fā)時(shí),Vue Router會(huì)將其對(duì)應(yīng)的組件掛載到根Vue實(shí)例中,并且更新頁(yè)面的視圖。

const router = new VueRouter({
routes: [
{ path: '/', component: Home },
{ path: '/about', component: About },
{ path: '/users/:id', component: User },
]
})

當(dāng)用戶點(diǎn)擊后退按鈕回到上一個(gè)頁(yè)面時(shí),Vue Router會(huì)從瀏覽器的歷史記錄中獲取上一個(gè)路由信息,并調(diào)用上一次路由對(duì)應(yīng)的組件渲染頁(yè)面。這個(gè)過(guò)程中,并沒(méi)有重新請(qǐng)求頁(yè)面的數(shù)據(jù)資源,也不會(huì)重載整個(gè)HTML頁(yè)面,從而保證了用戶操作的連貫性。

有時(shí)候,我們需要在Vue Router中手動(dòng)控制頁(yè)面的導(dǎo)航行為。例如,在某個(gè)路由組件中執(zhí)行了一些異步操作,但如果用戶在異步操作完成前離開(kāi)了該頁(yè)面,我們需要取消異步請(qǐng)求和清除頁(yè)面狀態(tài)。這時(shí),我們可以使用Vue Router的導(dǎo)航守衛(wèi)。

const router = new VueRouter({
routes: [...],
})
router.beforeEach((to, from, next) =>{
// 如果上一個(gè)路由是Profile頁(yè)面,并且to路由不是Users頁(yè)面,則取消異步請(qǐng)求
if(from.path === '/profile' && to.path !== '/users'){
cancelAjaxRequest()
clearPageState()
}
next()
})

在使用Vue Router的導(dǎo)航守衛(wèi)時(shí),需要注意一些事項(xiàng)。首先,如果導(dǎo)航衛(wèi)士中執(zhí)行了異步操作,必須在異步操作完成后調(diào)用next()方法。其次,如果我們需要中斷當(dāng)前的導(dǎo)航行為,可以調(diào)用next(false)。最后,如果我們想要重新導(dǎo)航到某個(gè)路由,可以調(diào)用next({path: '/example'})方法。