需求背景:
????實現(xiàn)圖片輪播功能且高度要自適應牛隅。
技術實現(xiàn)思路:
? ? 使用小程序自帶組件swiper。
????關鍵點:就是要計算出當前圖片的高度并賦值給swiper高度酌泰。需要計算是由于swiper必須指定高度不能像div一樣自動撐開媒佣。
? ? 難點:
? ? 1、問題:切換頁面返回 由onhide—>onshow時陵刹,出現(xiàn)所有的高度會保持在最后計算出的那個值默伍,導致高度自適應效果失效。
? ? ? ? ?原因:是由于此時imageLoad不再監(jiān)聽。
? ? ? ? ?解決辦法:watch圖片列表也糊,給url加參數(shù)(時間戳)炼蹦,使其每次都重新加載,使imageLoad監(jiān)聽狸剃。
? ? 2掐隐、問題:切換到后臺再返回到前臺時,初始高度會保持出現(xiàn)在第一張圖片的高度钞馁,若切換時非第一張圖片虑省,就會導致給當前圖片高度不正確,被遮擋或者有大片空白僧凰。
? ? ? ? ?原因:給swiper賦值的是 圖片列表里第一張的高度探颈。
? ? ? ? ?解決辦法:后臺切回前臺時,appdata是保持不變的训措,而當前圖片排位已被保存變量伪节,所以取當前圖片的高度賦值給swiper高度。
? ? 3绩鸣、問題:此組件所在頁面怀大,下面有跳轉到當前頁的業(yè)務需要,只是渲染數(shù)據(jù)不同全闷。當返回前一個頁面時叉寂,初始高度還保留著返回前最后一次的高度,與當前頁當前圖片高度不符总珠。
? ? ? ? ?原因:同頁面切換時屏鳍,appdata沒有重新賦值的話就不會變化,最后當前圖片變量取值了最后出現(xiàn)的那個頁面的當前圖片局服。
? ? ? ? 解決辦法:每切換到一個頁面時钓瞭,在圖片組件里,緩存以頁面數(shù):當前圖片為鍵值的currents對象淫奔。返回到某個頁面時山涡,通過當前頁面數(shù)取得當前圖片,從而獲得當前初始高度唆迁。
PS: 在設計和解決這些難點時鸭丛,均遵循著組件的高內聚、低耦合原則唐责,使得更具復用性鳞溉、穩(wěn)定性、無依賴鼠哥。
具體實現(xiàn):
ps:很多時候開始發(fā)現(xiàn)是未解的熟菲,待解決之后發(fā)現(xiàn)原來并沒什么看政,??,希望我們在發(fā)現(xiàn)問題解決問題的路上結伴而行孜孜不倦~ 有寫的不到之處望能不吝賜教抄罕,歡迎隨時交流允蚣,共勉~ ??