本技術(shù)涉及計算機,尤其涉及一種頁面顯示方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著各類應(yīng)用程序功能的日益壯大,很多類型的頁面都需要在路由鏈路中存在多個頁面實例,且存在多套頁面數(shù)據(jù),例如商品詳情頁、視頻詳情頁等。目前對于使用react-redux和react-navigation架構(gòu)開發(fā)的系統(tǒng),在react-redux模型的store對象中每次僅單獨存儲一個頁面數(shù)據(jù),在此種方式下,在從頁面a1跳轉(zhuǎn)至頁面a2時,a2的頁面數(shù)據(jù)會將a1的頁面數(shù)據(jù)覆蓋,以實現(xiàn)頁面a2的完整顯示,而當(dāng)從頁面a2再次跳轉(zhuǎn)回頁面a1時,頁面a2的頁面數(shù)據(jù)會被清空,此時store對象中沒有頁面a2的頁面數(shù)據(jù),也沒有頁面a1的頁面數(shù)據(jù),導(dǎo)致頁面a1無法正常顯示而出錯,如果想要正常顯示,需要刷新或重新初始化,在store對象中重新存儲頁面a1的頁面數(shù)據(jù),然后才能讀取該頁面數(shù)據(jù)進(jìn)行顯示,這會影響頁面a1的顯示效果。
2、因此,當(dāng)前頁面數(shù)據(jù)的單一存儲模式無法滿足頁面回跳時的顯示需求,需要改進(jìn)。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供一種頁面顯示方法、裝置、電子設(shè)備及存儲介質(zhì),用以緩解當(dāng)前頁面數(shù)據(jù)的單一存儲模式中無法滿足頁面回跳時的顯示需求的技術(shù)問題。
2、為解決上述技術(shù)問題,本技術(shù)實施例提供以下技術(shù)方案:
3、本技術(shù)提供一種頁面顯示方法,包括:
4、響應(yīng)于第一頁面的初始跳轉(zhuǎn)請求,將第一頁面實例放入路由棧,將第一頁面數(shù)據(jù)放入數(shù)據(jù)棧;
5、從所述路由棧中獲取所述第一頁面實例,從所述數(shù)據(jù)棧中獲取所述第一頁面數(shù)據(jù),根據(jù)所述第一頁面實例和所述第一頁面數(shù)據(jù),生成并顯示所述第一頁面;
6、響應(yīng)于從所述第一頁面到第二頁面的跳轉(zhuǎn)請求,將第二頁面實例放入路由棧,將第二頁面數(shù)據(jù)放入數(shù)據(jù)棧;
7、從所述路由棧中獲取所述第二頁面實例,從所述數(shù)據(jù)棧中獲取所述第二頁面數(shù)據(jù),根據(jù)所述第二頁面實例和所述第二頁面數(shù)據(jù),生成并顯示所述第二頁面;
8、響應(yīng)于從所述第二頁面到所述第一頁面的回跳請求,將所述第二頁面實例從所述路由棧出棧,將所述第二頁面數(shù)據(jù)從所述數(shù)據(jù)棧出棧;
9、再次從所述路由棧中獲取所述第一頁面實例,從所述數(shù)據(jù)棧中獲取所述第一頁面數(shù)據(jù),根據(jù)所述第一頁面實例和所述第一頁面數(shù)據(jù),再次生成并顯示所述第一頁面。
10、在一種實施例中,響應(yīng)于第一頁面的初始跳轉(zhuǎn)請求,將第一頁面實例放入路由棧,將第一頁面數(shù)據(jù)放入數(shù)據(jù)棧的步驟,包括:
11、響應(yīng)于第一頁面的初始跳轉(zhuǎn)請求,將第一頁面實例放入react-navigation路由棧中;
12、通過react-redux模型的action對象生成入棧action,并將所述入棧action分發(fā)給所述react-redux模型的reducer對象;
13、通過所述reducer對象處理所述入棧action,將第一頁面數(shù)據(jù)放入所述store對象中的數(shù)據(jù)棧。
14、在一種實施例中,在響應(yīng)于第一頁面的初始跳轉(zhuǎn)請求的步驟之前,還包括:
15、在所述路由棧中分配多個路由位置區(qū)間,每一所述路由位置區(qū)間包括至少兩個路由位置,每一所述路由位置用于存放一個頁面實例,同一路由位置區(qū)間對應(yīng)的各頁面實例相互關(guān)聯(lián),不同路由位置區(qū)間對應(yīng)的各頁面實例相互不關(guān)聯(lián);
16、在所述數(shù)據(jù)棧中分配多個數(shù)據(jù)位置區(qū)間,每一所述數(shù)據(jù)位置區(qū)間包括至少兩個數(shù)據(jù)位置,每一所述數(shù)據(jù)位置用于存放一個頁面數(shù)據(jù),同一數(shù)據(jù)位置區(qū)間對應(yīng)的各頁面數(shù)據(jù)相互關(guān)聯(lián),不同數(shù)據(jù)位置區(qū)間對應(yīng)的各頁面數(shù)據(jù)相互不關(guān)聯(lián);
17、在所述路由棧的各路由位置區(qū)間和所述數(shù)據(jù)棧的各數(shù)據(jù)位置區(qū)間之間建立位置對應(yīng)關(guān)系。
18、在一種實施例中,從所述路由棧中獲取所述第一頁面實例,從所述數(shù)據(jù)棧中獲取所述第一頁面數(shù)據(jù)的步驟,包括:
19、獲取所述第一頁面實例在所述路由棧中的目標(biāo)路由位置區(qū)間,根據(jù)所述目標(biāo)路由位置區(qū)間和所述位置對應(yīng)關(guān)系,確定所述第一頁面數(shù)據(jù)在所述數(shù)據(jù)棧中的目標(biāo)數(shù)據(jù)位置區(qū)間;
20、獲取第一頁面索引,根據(jù)所述第一頁面索引從所述目標(biāo)路由位置區(qū)間中確定目標(biāo)路由位置,并從所述目標(biāo)路由位置獲取所述第一頁面實例;
21、根據(jù)所述目標(biāo)路由位置和所述位置對應(yīng)關(guān)系,確定所述第一頁面數(shù)據(jù)在所述目標(biāo)數(shù)據(jù)位置區(qū)間的目標(biāo)數(shù)據(jù)位置,從所述目標(biāo)數(shù)據(jù)位置獲取所述第一頁面數(shù)據(jù)。
22、在一種實施例中,從所述數(shù)據(jù)棧中獲取所述第一頁面數(shù)據(jù),根據(jù)所述第一頁面數(shù)據(jù)和所述第一頁面實例,生成并顯示所述第一頁面的步驟,包括:
23、獲取第一頁面索引,將所述第一頁面索引傳遞給所述第一頁面實例的各組件,以使各所述組件基于所述第一頁面索引,分別從所述數(shù)據(jù)棧中查找所述第一頁面數(shù)據(jù)中的各部分子數(shù)據(jù);
24、將所述第一頁面數(shù)據(jù)的各部分子數(shù)據(jù)分別填入各所述組件中,以顯示所述第一頁面。
25、在一種實施例中,響應(yīng)于從第二頁面到所述第一頁面的回跳請求,將第二頁面實例從所述路由棧出棧,將第二頁面數(shù)據(jù)從所述數(shù)據(jù)棧出棧的步驟,包括:
26、響應(yīng)于從第二頁面到所述第一頁面的回跳請求,將第二頁面實例從所述react-navigation路由棧中出棧;
27、通過所述action對象生成出棧action,并將所述出棧action分發(fā)給所述reducer對象;
28、通過所述reducer對象處理所述出棧action,將第二頁面數(shù)據(jù)從所述store對象中的數(shù)據(jù)棧中出棧。
29、在一種實施例中,在生成并顯示所述第一頁面的步驟之后,還包括:
30、響應(yīng)于對目標(biāo)頁面的頁面數(shù)據(jù)管理請求,通過所述action對象生成棧內(nèi)元素管理action,并將所述棧內(nèi)元素管理action分發(fā)給對應(yīng)的reducer對象;
31、通過所述reducer對象處理所述棧內(nèi)元素管理action,將所述數(shù)據(jù)棧內(nèi)的目標(biāo)頁面數(shù)據(jù)確定為目標(biāo)棧內(nèi)元素,并對所述目標(biāo)棧內(nèi)元素執(zhí)行管理操作。
32、同時,本技術(shù)實施例還提供了一種頁面顯示裝置,包括:
33、第一入棧模塊,用于響應(yīng)于第一頁面的初始跳轉(zhuǎn)請求,將第一頁面實例放入路由棧,將第一頁面數(shù)據(jù)放入數(shù)據(jù)棧;
34、第一顯示模塊,用于從所述路由棧中獲取所述第一頁面實例,從所述數(shù)據(jù)棧中獲取所述第一頁面數(shù)據(jù),根據(jù)所述第一頁面實例和所述第一頁面數(shù)據(jù),生成并顯示所述第一頁面;
35、第二入棧模塊,用于響應(yīng)于從所述第一頁面到第二頁面的跳轉(zhuǎn)請求,將第二頁面實例放入路由棧,將第二頁面數(shù)據(jù)放入數(shù)據(jù)棧;
36、第二顯示模塊,用于從所述路由棧中獲取所述第二頁面實例,從所述數(shù)據(jù)棧中獲取所述第二頁面數(shù)據(jù),根據(jù)所述第二頁面實例和所述第二頁面數(shù)據(jù),生成并顯示所述第二頁面;
37、出棧模塊,用于響應(yīng)于從所述第二頁面到所述第一頁面的回跳請求,將所述第二頁面實例從所述路由棧出棧,將所述第二頁面數(shù)據(jù)從所述數(shù)據(jù)棧出棧;
38、第三顯示模塊,用于再次從所述路由棧中獲取所述第一頁面實例,從所述數(shù)據(jù)棧中獲取所述第一頁面數(shù)據(jù),根據(jù)所述第一頁面實例和所述第一頁面數(shù)據(jù),再次生成并顯示所述第一頁面。
39、本技術(shù)還提供一種電子設(shè)備,包括存儲器和處理器;所述存儲器存儲有應(yīng)用程序,所述處理器用于運行所述存儲器內(nèi)的應(yīng)用程序,以執(zhí)行上述任一項所述的頁面顯示方法中的步驟。
40、本技術(shù)實施例提供一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)存儲有多條指令,指令適于處理器進(jìn)行加載,以執(zhí)行上述頁面顯示方法中的步驟。
41、有益效果:本技術(shù)提供一種頁面顯示方法、裝置、電子設(shè)備及存儲介質(zhì),該方法先響應(yīng)于第一頁面的初始跳轉(zhuǎn)請求,將第一頁面實例放入路由棧,將第一頁面數(shù)據(jù)放入數(shù)據(jù)棧,然后從路由棧中獲取第一頁面實例,從數(shù)據(jù)棧中獲取第一頁面數(shù)據(jù),根據(jù)第一頁面實例和第一頁面數(shù)據(jù),生成并顯示第一頁面,再響應(yīng)于從第一頁面到第二頁面的跳轉(zhuǎn)請求,將第二頁面實例放入路由棧,將第二頁面數(shù)據(jù)放入數(shù)據(jù)棧,從路由棧中獲取第二頁面實例,從數(shù)據(jù)棧中獲取第二頁面數(shù)據(jù),根據(jù)第二頁面實例和第二頁面數(shù)據(jù),生成并顯示所述第二頁面,最后響應(yīng)于從第二頁面到第一頁面的回跳請求,將第二頁面實例從路由棧出棧,將第二頁面數(shù)據(jù)從數(shù)據(jù)棧出棧,然后再次從路由棧中獲取第一頁面實例,從數(shù)據(jù)棧中獲取第一頁面數(shù)據(jù),根據(jù)第一頁面實例和第一頁面數(shù)據(jù),再次生成并顯示第一頁面。本技術(shù)通過設(shè)置數(shù)據(jù)棧,在各頁面初始跳轉(zhuǎn)時將該頁面對應(yīng)的頁面數(shù)據(jù)放入數(shù)據(jù)棧中,當(dāng)需要從其他頁面回跳至該頁面時,可以直接從數(shù)據(jù)棧中獲取該頁面數(shù)據(jù)進(jìn)行顯示,通過將當(dāng)前單一存儲模式下頁面數(shù)據(jù)的覆蓋和清空操作轉(zhuǎn)換為在數(shù)據(jù)棧的入棧和出棧操作,在數(shù)據(jù)棧中實現(xiàn)了多套頁面數(shù)據(jù)共存,可以滿足任意頁面在回跳時的顯示需求。