如何用div和css做購物網(wǎng)站關(guān)鍵詞歌詞打印
前言
最近因為之前的630版本有點忙,導(dǎo)致斷更了幾天,現(xiàn)在再補上。換換腦子。
目前內(nèi)測系統(tǒng)的華為應(yīng)用市場,各種頂級APP陸續(xù)都放出來beta版本了,大體上都完成了主流程的開發(fā)。欣欣向榮的氣息。
學(xué)習(xí)思路
關(guān)于學(xué)習(xí)HarmonyOS的問題,很多同學(xué)私聊我說,因為沒有白名單訪問不了最新的API,目前API已經(jīng)到12。這其實影響不大,HarmonyOS和OpenHarmony的接口我比對了下,現(xiàn)在基本功能和作用沒有區(qū)別,可能某些系統(tǒng)api導(dǎo)包名字有區(qū)別,但這不影響,可以無縫切換。
可以通過這個鏈接,訪問OpenHarmony開源的API接口文檔等信息。
點擊左上角的分支,來控制你看的API文檔版本。目前最新的是5.0 Beta1 這和HarmonyOS是一致的。目前看華為的策略就是開源鴻蒙和商業(yè)鴻蒙版本一致管理。
標(biāo)關(guān)于官方推薦的組件級路由Navigation的使用心得體會
最近經(jīng)歷了一次應(yīng)用架構(gòu)更新,對于路由的概念有了深刻的認(rèn)識。從兩年前開發(fā)OpenHarmony開始,基本都是使用router路由和window窗口來控制模塊之間的切換。整個頁面邏輯的控制非常耦合,并且笨重不變。
隨著API的迭代更新,目前華為官方推薦使用Navigaiton來替換router。
Navigaiton這個東西,方便就方便于它的定位,組件級別。而我們的老東西router是頁面級別。
- 靈活性一目了然,我們可以將頁面一部分組件,進行路由控制切換。
- 并且我們可以對路由的刪除進行管理,而router是沒有remove只能替換,并且替換路由函數(shù),是強制沒有頁面轉(zhuǎn)場動畫的效果。
- 最大的優(yōu)勢在于系統(tǒng)提供了自動擴容的容器控件,并且支持分欄效果,在折疊屏手機上的適配會非常方便。
Navigation如何使用?
首先Navigation是個容器,并不是直接對標(biāo)router一樣來使用的。我們可以理解成,這家伙是個變形金剛,它是由三部分組成,首先是主頁面容器Navigation,其次是子頁面容器NavDestination,之后才是對標(biāo)router的操作對象NavPathStack
(1)創(chuàng)建主頁界面
MainPage { message: string = 'Hello World';// 創(chuàng)建一個頁面棧對象并傳入NavigationpageStack: NavPathStack = new NavPathStack()build() {Navigation(this.pageStack) {// 頁面布局Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick(()=>{// 跳轉(zhuǎn)到子頁面this.pageStack.pushDestination({name: "OnePage",}, false); //該false表示不需要轉(zhuǎn)場動畫,默認(rèn)是有的})}.width('100%')}.height('100%')}// 分為三種模式,(默認(rèn))自動NavigationMode.Auto,單頁面NavigationMode.Stack和分欄NavigationMode.Split.mode(NavigationMode.Stack)}
}
struct
(2)創(chuàng)建子頁界面
// 跳轉(zhuǎn)頁面入口函數(shù)
export function OnePageBuilder() {OnePage()
}
struct OnePage {private TAG: string = "OnePage"; message: string = 'Hello World';pathStack: NavPathStack = new NavPathStack();build() {NavDestination() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%')}.height('100%')}.onShown(()=>{console.log(this.TAG, "OnePage onShown");}).onReady((context: NavDestinationContext) => {this.pathStack = context.pathStack;})}
}
(3)配置路由表
{"routerMap": [{"name": "OnePage","pageSourceFile": "src/main/ets/pages/Navigation/OnePage.ets","buildFunction": "OnePageBuilder","data": {"description" : "this is PageOne"}}]
}
特別注意的是,需要配置路由表的路徑到module.json5里面,要不然跳轉(zhuǎn)不了。
特別注意的是,需要配置路由表的路徑到module.json5里面,要不然跳轉(zhuǎn)不了。
特別注意的是,需要配置路由表的路徑到module.json5里面,要不然跳轉(zhuǎn)不了。主要的話說三遍!
{"module" : {"routerMap": "$profile:route_map"}}
從API version 12開始,Navigation支持使用系統(tǒng)路由表的方式進行動態(tài)路由。各業(yè)務(wù)模塊(HSP/HAR)中需要獨立配置router_map.json文件,在觸發(fā)路由跳轉(zhuǎn)時,應(yīng)用只需要通過NavPactStack提供的路由方法,傳入需要路由的頁面配置名稱,此時系統(tǒng)會自動完成路由模塊的動態(tài)加載、頁面組件構(gòu)建,并完成路由跳轉(zhuǎn),從而實現(xiàn)了開發(fā)層面的模塊解耦。