ArkUI-15-页面路由

import  router from '@ohos.router'
import { Header } from '../components/CommonComponents'

class RouterInfo{
  //页面路径
  url:string
  title:string

  constructor(url: string, title: string) {
    this.url = url
    this.title = title
  }
}

@Entry
@Component
struct Index {
  @State message:string='页面列表'
  private routers:RouterInfo[]=[
    new RouterInfo('pages/PageTest01','图片查看案例'),
    new RouterInfo('pages/PageTest02','商品列表案例'),
    new RouterInfo('pages/PageTest03','Jack和他的女友案例'),
    new RouterInfo('pages/PageTest04','任务列表案例')
  ]

  build() {
    Column(){
      Header()
      Text(this.message)
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .height(80)
        .onClick(()=>{
          this.message='hello ar0kts'
        })
      List({space:15}){
        ForEach(this.routers,(router:RouterInfo,index)=>{
          ListItem(){
            this.RouterItem(router,index+1)
          }
        })
      }.layoutWeight(1)
      .alignListItem(ListItemAlign.Center)
      .width('100%')
    }
  }
  @Builder
  RouterItem(r:RouterInfo,i:number){
    Row(){
      Text(i +'.')
        .fontSize(20)
        .fontColor(Color.White)
      Blank()
      Text(r.title)
        .fontSize(20)
        .fontColor(Color.White)
    }
    .width('90%')
    .padding(12)
    .backgroundColor('#38f')
    .borderRadius(20)
    .shadow({radius:6,color:'#4F000000',offsetX:2,offsetY:2})
    .onClick(()=>{
      //router跳转
      router.pushUrl(
        {
          url:r.url,
          params:{id:i}
        },
        router.RouterMode.Single,
        (err) => {
          if (err) {
            console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);
            return;
          }
        }
      )
    })
  }
}

----

import router from '@ohos.router';
import { Header } from '../components/CommonComponents';

@Entry
@Component
struct PageTest01 {
  @State message: string = 'Hello World1';

  build() {

    Row() {
      Column() {
        Header()
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button(this.message)
          .height('40')
          .fontSize(14)
          .position({x:100,y:100})
          .align(Alignment.Center)
          .onClick(()=>{
            router.back();
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

{
  "src": [
    "pages/PageIndex",
    "pages/PageTest01",
    "pages/PageTest02",
    "pages/PageTest03",
    "pages/PageTest04"
  ]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值