@Component
標(biāo)簽修飾UI,相當(dāng)于Android的view,所有的UI組件都要使用@Component標(biāo)簽
@Entry標(biāo)簽
表明當(dāng)前是一個頁面,不是一個視圖。多個組件組合時只能有一個@Entry標(biāo)簽,被該標(biāo)簽修飾后頁面才會有生命周期
import router from '@ohos.router'
@Entry
@Component
struct Login {
@State title: string = '登錄頁面'
build() {
Row() {
Column() {
Text(this.title).fontSize(20)
.fontWeight(FontWeight.Bold)
.textAlign(TextAlign.Center)
.width('100%').margin({top:10})
Button() {
Text('返回')
.fontSize(18)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.padding({top:5,bottom:5,left:10,right:10})
.margin({top:20})
.onClick(()=>{
try{
router.back()
}catch (err){
console.error("錯誤="+err.code +" message="+err.message)
}
})
}
}.width('100%')
}
onPageShow(){
//頁面每次顯示時觸發(fā)
}
onPageHide(){
//頁面每次隱藏時觸發(fā)
}
onBackPress(){
//用戶點擊返回按鈕時觸發(fā)
}
aboutToAppear(){
//在執(zhí)行build函數(shù)之前執(zhí)行
}
aboutToDisappear(){
//組件即將銷毀時執(zhí)行
}
}
@Builder標(biāo)簽
使用該標(biāo)簽的方法會自動構(gòu)建一個組件
- 全局方式
@Builder function xxx{}
- 組件內(nèi)方式
@Builder xx{}
需要傳遞參數(shù)時采用引用傳遞 $$
//方法
@Builder function builderFunc($$:{showText:string}){
Text('全局 builder方法 '+$$.showText)
.fontSize(18)
.fontColor("#333333")
}
//調(diào)用
builderFunc({showText:'全局豬頭'})
@BuilderParam標(biāo)簽
對應(yīng)@Builder標(biāo)簽,類似于java的接口傳遞
/**
* 全局styles樣式
*/
@Styles function globalFancy(){
.width(100)
.height(150)
.backgroundColor(Color.Pink)
}
@Builder function builderFunc($$:{showText:string}){
Text('全局 builder方法 '+$$.showText)
.fontSize(18)
.fontColor("#333333")
}
@Component
struct testBuildParam{
@BuilderParam param:()=>void
build(){
Column(){
this.param()
}
}
}
//頁面入口
@Entry
@Component
struct StylesPage{
@State heightNum:number = 100
@Styles selfFancy(){
.width(120)
.height(this.heightNum)
.backgroundColor(Color.Yellow)
.onClick(()=>{
this.heightNum = 180
})
}
@Builder builderSelf(){
Text("組件內(nèi)方法")
.fontSize(15)
.fontColor("#999999")
.margin({top:20})
}
build(){
Column({space:10}){
Text("全局引用styles")
.globalFancy()
.fontSize(25)
Text("組件內(nèi)的style")
.selfFancy()
.fontSize(18)
this.builderSelf()
builderFunc({showText:'全局豬頭'})
testBuildParam({param:this.builderSelf})
}
}
}
審核編輯 黃宇
HTML 1800 字?jǐn)?shù) 121 段落
-
鴻蒙
+關(guān)注
關(guān)注
60文章
2620瀏覽量
44064
發(fā)布評論請先 登錄
【HarmonyOS 5】鴻蒙頁面和組件生命周期函數(shù)
【HarmonyOS 5】鴻蒙星閃NearLink詳解

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解

鴻蒙5開發(fā)寶藏案例分享---Web頁面內(nèi)點擊響應(yīng)時延分析
鴻蒙5開發(fā)寶藏案例分享---性能體驗設(shè)計
如何在KaihongOS操作系統(tǒng)中寫一個動態(tài)的頁面
DialogHub上線OpenHarmony開源社區(qū),高效開發(fā)鴻蒙應(yīng)用彈窗
Get這個秘籍,鴻蒙原生應(yīng)用頁面滑動絲滑無比
鴻蒙原生頁面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用
《HarmonyOS第一課》煥新升級,賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā)
HarmonyOS Web頁面加載的原理和優(yōu)化方法

鴻蒙原生開發(fā)手記:01-元服務(wù)開發(fā)
鴻蒙Flutter實戰(zhàn):07混合開發(fā)
鴻蒙Flutter實戰(zhàn):04-如何使用DevTools調(diào)試Webview
Linux內(nèi)核中的頁面分配機制

評論