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