鸿蒙开发Day02

数据同步

在这里插入图片描述

页面路由

页面路由是指在应用程序中实现不同页面之间的跳转和数据传递
页面栈的最大容量上限为32个页面,使用router.clear()方法可以清空页面栈,释放内存

Router有两种页面跳转模式,分别是:

router.pushUrl(): 目标页不会替换当前页,而是压入页面栈,因此可以用router.back()返回当前页
router.replaceUrl(): 目标页替换当前页,当前页会被销毁并释放资源,无法返回当前页

Router有两种页面实例模式,分别是:

Standard: 标准实例模式,每次跳转都会新建一个目标页并压入栈顶。默认就是这种模式
Single: 单实例模式,如果目标页已经在栈中,则离栈顶最近的Url页面会被移动到栈顶并重新加载

在这里插入图片描述

router.showAlertBeforeBackPage() //返回前的警告

练习:

import router from '@ohos.router'
@Entry
@Component
struct game{
  build(){
    Column(){
      Stack(){
        Image($r("app.media.img"))
          .height('100%')
          .width('100%')
        Button(){
          Text('开始游戏')
            .fontSize(20)
            .fontColor('#ff0')
            .width(80)
            .height(40)
        }.position({x: 130,y: 550})
        .width(100)
        .onClick(()=>{
          router.replaceUrl({
            url: 'pages/game_1'
          }, router.RouterMode.Single)
        })
      }
    }
  }
}
@Entry
@Component
struct game_1{
  @State imgX:number = 100
  @State imgY:number = 100
  build(){
    Column(){
      Stack(){
        Image($r("app.media.img_2"))
        Image($r("app.media.img_3"))
          .width(50)
          .position({x:this.imgX, y:this.imgY})
        Button(){
          Text("^")
            .fontSize(20)
        }.type(ButtonType.Circle)
        .width(30)
        .position({x:100, y:200})
        .onClick(()=>{
          animateTo({duration:1000},()=>{
            this.imgY -= 100
          })
        })

        Button(){
          Text("<")
            .fontSize(20)
        }
        .type(ButtonType.Circle)
        .width(30)
        .position({x:60, y:240})
        .onClick(()=>{
          animateTo({duration:1000},()=>{
            this.imgX -= 100
          })
        })

        Button(){
          Text(">")
            .fontSize(20)
        }
        .type(ButtonType.Circle)
        .width(30)
        .position({x:140, y:240})
        .onClick(()=>{
          animateTo({duration:1000},()=>{
            this.imgX += 100
          })
        })

        Button(){
          Text("-")
        }
        .width(30)
        .position({x:100, y:280})
        .onClick(()=>{
          animateTo({duration:1000},()=>{
            this.imgY += 100
          })
        })
      }
    }
  }
}
        animateTo({duration:1000},()=>{
            this.imgY += 100
          })
        })
      }
    }
  }
}

相关推荐

  1. 鸿蒙4.0】harmonyos Day 01

    2024-03-30 07:04:03       72 阅读
  2. 鸿蒙4.0】harmonyos Day 04

    2024-03-30 07:04:03       54 阅读
  3. <span style='color:red;'>Day</span>-<span style='color:red;'>02</span>-<span style='color:red;'>01</span>

    Day-02-01

    2024-03-30 07:04:03      60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 07:04:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 07:04:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 07:04:03       87 阅读
  4. Python语言-面向对象

    2024-03-30 07:04:03       96 阅读

热门阅读

  1. 机器学习 - 提高模型 (代码)

    2024-03-30 07:04:03       38 阅读
  2. ARM.day8

    2024-03-30 07:04:03       39 阅读
  3. 怎么使用vuex的数据和方法

    2024-03-30 07:04:03       36 阅读
  4. 使用VHDL实现俄罗斯方块游戏设计

    2024-03-30 07:04:03       44 阅读
  5. PyTorch中的flatten+transpose函数说明

    2024-03-30 07:04:03       46 阅读
  6. 使用Dom4j解析多层级XML为Map对象

    2024-03-30 07:04:03       39 阅读
  7. 【threejs】计算矩阵、网格等总面积

    2024-03-30 07:04:03       46 阅读
  8. spark DataFrame通过JDBC读写数据库(MySQL示例)

    2024-03-30 07:04:03       36 阅读
  9. npm包发布

    2024-03-30 07:04:03       40 阅读
  10. Node.js常用命令详解

    2024-03-30 07:04:03       40 阅读
  11. 在axios中设置方法防止http重复请求

    2024-03-30 07:04:03       37 阅读