HTML5大前端中的History API技能詳解
相信學(xué)員在寫項目時都會遇到下面這樣的問題:用vant 的tab去換不同的組件,加載不同的數(shù)據(jù)。點(diǎn)擊的時候,可以跳到對應(yīng)的頁面。然后返回的時候,轉(zhuǎn)跳到之前的狀態(tài)。可是遇到多頁面的應(yīng)用,里面的按鈕則需要轉(zhuǎn)跳其他頁面。
遇到上述情況,相信很多學(xué)員想到添加參數(shù)作為區(qū)分,然后依據(jù)參數(shù)做判斷。但是一旦添加參數(shù),牽扯的修改內(nèi)容也會隨之增加很多。因為其他的部分轉(zhuǎn)跳這個頁面也都需要添加參數(shù)。
這個時候,最好的辦法是歷史替換,默認(rèn)打開不作處理,只有tab切換的時候,做pushstate。下面就介紹在HTML5大前端中: history API 的具體用法。
(一)js/history
可以在不刷新頁面的情況下動態(tài)的修改地址欄中的URL地址,動態(tài)的修改頁面上所顯示的資源。
window.history 的方法和屬性
方法: back() forward() go()
屬性: length
//返回
window.history.back()
window.history.go(-1)
//向前跳轉(zhuǎn)
window.history.foward()
window.history.go(1)
//歷史記錄中頁面總數(shù)
history.length
(二)HTML5 新方法
添加和替換歷史記錄的條目
pushState
history.pushState(state,title,url): 添加一條歷史記錄,不刷新頁面
state: 一個于指定網(wǎng)址相關(guān)的狀態(tài)對象,popstate事件觸發(fā)時,該對象會傳入回調(diào)函數(shù)中,如果不需要這個對象,填null
title: 新頁面的標(biāo)題,但是大多數(shù)瀏覽器都會忽略這個值,因此,這里可以填入 null
url: 新網(wǎng)址,必須是同一個域名
history.pushState(null, null,'./demo.html')
缺點(diǎn): 就是瀏覽器在轉(zhuǎn)跳的時候,不會檢查 demo.html 是否存在
(三)應(yīng)用--添加 hash 值,頁面只局部加載
history.pushState(null, null,'#one')
replaceState替換當(dāng)前的歷史記錄,不刷新頁面
history.replaceState(state,title,url) 替換當(dāng)前歷史記錄,不刷新頁面
history.replaceState(null, null,'?one')
(四)事件
popstate事件:歷史記錄發(fā)生改變時觸發(fā),調(diào)用 history.pushState() 或者 history.replaceState(),不會觸發(fā)popstate()事件
hashchange事件: 當(dāng)頁面hash值改變的時候,常用于構(gòu)建單頁面的應(yīng)用
按照上面的操作,跳轉(zhuǎn)頁面問題就可以完美解決。建議你把上面的解決代碼方案自己從頭到尾敲上幾遍,以此確保真正掌握以及遇到相關(guān)衍生問題能夠觸類旁通。要知道想要成為一名合格優(yōu)秀的程序員,需要積累大量實戰(zhàn)經(jīng)驗,只理解了代碼戰(zhàn)術(shù)是遠(yuǎn)遠(yuǎn)不夠的。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
如何學(xué)編程基礎(chǔ)入門,怎么選擇適合自己的編程語言?
如何學(xué)編程基礎(chǔ)入門?零基礎(chǔ)想要學(xué)習(xí)編程,第一步先決定要學(xué)哪一門語言,了解它們的特點(diǎn)和應(yīng)用的領(lǐng)域;第二步確定學(xué)習(xí)方法,自學(xué)還要結(jié)合一些輔助...詳情>>
2023-03-06 14:57:00
成都java培訓(xùn)多少錢?選擇靠譜的培訓(xùn)機(jī)構(gòu)很重要
成都java人才需求量大,薪資水平高,發(fā)展前景良好,很多人希望能提升自己的專業(yè)技能,找到一份好工作,培訓(xùn)可以說是系統(tǒng)、快速地提高自身技術(shù)水...詳情>>
2023-02-13 17:41:00
參加Python培訓(xùn)班零基礎(chǔ)可以學(xué)會嗎?
隨著互聯(lián)網(wǎng)、云計算、大數(shù)據(jù)的飛速發(fā)展,在可以預(yù)見的未來,中國的人工智能產(chǎn)業(yè)將在諸多領(lǐng)域迎來新的發(fā)展機(jī)遇。也有越來越多的人選擇入行人工...詳情>>
2022-02-11 15:12:00
web前端培訓(xùn)班的費(fèi)用是多少?學(xué)習(xí)需要多久?
隨著市場上新型開發(fā)場景的不斷增多,企業(yè)對web前端開發(fā)技術(shù)的要求也在不斷的提升,對前端開發(fā)工程師的需求量在不斷的增多,市場上有一些小伙...詳情>>
2022-02-11 15:11:00熱門推薦
零基礎(chǔ)學(xué)習(xí)java多久可以學(xué)會?
沸成都h5培訓(xùn)課程去哪比較好?如何選擇?
熱零基礎(chǔ)小白入門h5如何學(xué)習(xí)?
熱計算機(jī)前端和后端區(qū)別,哪個好?
新如何成為編程程序員,應(yīng)該具備哪些素質(zhì)?
如何學(xué)編程基礎(chǔ)入門,怎么選擇適合自己的編程語言?
python一般用來做什么?可以滿足不同的應(yīng)用場合需要
嵌入式開發(fā)要學(xué)哪些課程?要了解對應(yīng)的學(xué)習(xí)要求
web前端培訓(xùn)多久?了解具體的培訓(xùn)時間
成都java培訓(xùn)多少錢?選擇靠譜的培訓(xùn)機(jī)構(gòu)很重要
java架構(gòu)師學(xué)習(xí)路線是什么?選擇合適的學(xué)習(xí)路線很重要
學(xué)程序員需要什么條件?要掌握哪些方面的基礎(chǔ)理論知識
程序員培訓(xùn)一般要多少錢?要考慮相應(yīng)的綜合性價比
學(xué)編程從哪方面入手?能有效的提升學(xué)習(xí)效率
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點(diǎn)擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊
了解師資團(tuán)隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線