1.、簡介
本項目是Harmony-Next原生開發,真實網絡請求。采用V2等狀態管理裝飾器。包含(首頁、分類、發現、購物車、我的、登錄、搜索,搜索結果,商品詳情等).包含V2對接口返回數據的深度監聽。
2、頁面展示:
- 組件引入:引入頁面所需的外部依賴,包括路由管理、工具類、網絡請求、數據模型等,實現 “按需引入”,減少冗余。
- 核心依賴:
- 路由:
ZRouter
負責頁面跳轉(如跳轉到詳情頁、搜索頁); - 網絡:
AxIosHttp
封裝了 HTTP 請求邏輯; - 數據模型:多個
Model
(如homeBannerModel
)定義了數據結構,保證類型一致性; - 工具:
ToastUtil
用于提示信息,ConfigUtils
管理全局配置(如圖片基礎 URL)。
- 路由:
- 組件聲明:通過
@ComponentV2
裝飾器聲明為 HarmonyOS 組件,是頁面渲染的基本單位。 - 狀態管理:使用
@Local
裝飾器定義組件內部狀態(本地變量),用于存儲從接口獲取的數據(如輪播圖、商品列表),狀態變化會觸發 UI 重新渲染。 - 核心實例:
Scroller
:控制頁面滾動(如監聽滾動位置、觸發加載更多);WaterFlowDataSource
:瀑布流布局的數據源,用于管理懶加載的商品數據。
- 布局思想:采用 “拆分思想”,將復雜 UI 拆分為多個
@Builder
方法(如setSwiper
負責輪播圖、setCouphGoodsBuilder
負責瀑布流),每個方法專注于一個 UI 模塊,提高代碼可讀性。 - 核心布局組件:
Stack
:根布局,實現導航欄與主體內容的層疊顯示;Scroll
:滾動容器,支持頁面縱向滾動;Column
/Row
:線性布局(縱向 / 橫向),用于組織子組件;Swiper
:輪播容器(頂部輪播圖、評論標簽分頁);WaterFlow
:瀑布流布局(優惠商品區域),結合LazyForEach
實現數據懶加載;Grid
:網格布局(評論標簽區域),按行列展示多個子項。
- 路由管理:通過
ZRouter
實現頁面跳轉(如跳轉到詳情頁details
、搜索頁searchPage
),統一管理路由配置,便于維護。 - 滾動交互:通過
scroller
監聽滾動位置,修改scrollerFlag
狀態,動態切換導航欄樣式(如 logo 顯示 / 隱藏、背景色變化),并通過animation
實現過渡動畫。 - 懶加載:瀑布流的
onReachEnd
事件在滾動到末尾時觸發,調用getBestGoods
加載更多數據,優化性能(避免一次性加載過多數據)。
- 模塊化拆分:通過
@Builder
拆分 UI 模塊、獨立方法封裝數據加載,代碼結構清晰,便于維護。 - 狀態驅動 UI:使用
@Local
管理本地狀態,數據變化自動觸發 UI 更新,符合聲明式 UI 的設計思想。 - 網絡請求封裝:通過
AxIosHttp
統一管理網絡請求,配合ResponseModel
規范響應數據格式,錯誤處理統一(ToastUtil
)。 - 性能優化:
- 瀑布流 +
LazyForEach
實現數據懶加載,減少初始渲染壓力; - 滾動監聽控制導航欄樣式,按需更新 UI。
- 瀑布流 +
- 路由統一管理:通過
ZRouter
處理頁面跳轉,參數傳遞清晰,便于路由攔截、權限控制等擴展。
網盤鏈接:百度網盤 請輸入提取碼
關注后私信免費獲取源碼。