华为鸿蒙开发——Stage/FA模型在ArkTs语言、JS语言 实现页面互转

news/2024/7/21 9:54:59 标签: harmonyos, 华为, javascript

文章目录

  • 一、ArkTs(Stage模型)
  • 二、ArkTs(FA模型)
  • 三、JS(FA模型)

一、ArkTs(Stage模型)

目的:实现两个页面的跳转功能
步骤:
1、打开entry > src > main > ets > pages
2、在默认页面基础上,我们添加一个Button组件,作为按钮响应用户点击,从而实现跳转到另一个页面。

// 添加按钮,以响应用户点击
        Button() {
          Text('Next')
            .fontSize(30)
            .fontWeight(FontWeight.Bold)
        }
        .type(ButtonType.Capsule)
        .margin({
          top: 20
        })
        .backgroundColor('#0D9FFB')
        .width('40%')
        .height('5%')

在这里插入图片描述
3、
(1)创建第二个arkts文件,在相同的文件夹下面创建“Second”文件
在这里插入图片描述
(2)配置路径
在src\main\resources\base\profile\main_pages.json文件里面,添加路劲:

{
  "src": [
    "pages/Index",
    "pages/Second"
  ]
}

上面这种创建arkts文件方法是其中一种,还有一种方法创建则无需手动配置路径:
依然是在src\main\etc\pages下面,右击pages,new下面的page选项,直接输入文件名即可;
在这里插入图片描述
4、
添加文本及按钮。(复制粘贴index.ets)
参照第一个页面,在第二个页面添加Text组件、Button组件等,并设置其样式。

5、实现页面跳转
页面间的导航可以通过页面路由router来实现。页面路由router根据页面url找到目标页面,从而实现跳转。使用页面路由请导入router模块。

(1)index.ets 实现第一页跳转第二页
首先:在最上面位置导入模块

// 导入页面路由模块
import router from '@ohos.router';

其次:

// 跳转按钮绑定onClick事件,点击时跳转到第二页
        .onClick(() => {
          console.info(`Succeeded in clicking the 'Next' button.`)
          // 跳转到第二页
          router.pushUrl({ url: 'pages/Second' }).then(() => {
            console.info('Succeeded in jumping to the second page.')
          }).catch((err) => {
            console.error(`Failed to jump to the second page.Code is ${err.code}, message is ${err.message}`)
          })
        })

(2)second.ets 实现第二页调转第一页

// 返回按钮绑定onClick事件,点击按钮时返回到第一页
        .onClick(() => {
          console.info(`Succeeded in clicking the 'Back' button.`)
          try {
            // 返回第一页
            router.back()
            console.info('Succeeded in returning to the first page.')
          } catch (err) {
            console.error(`Failed to return to the first page.Code is ${err.code}, message is ${err.message}`)
          }
        })

6、效果如下
在这里插入图片描述

二、ArkTs(FA模型)

该模型也可实现页面之间互转,开发起来与Stage模型相比有区别;
步骤:
1、建立一个空工程
注意几点:

  • API选3.0.0,即为API8
  • model选FA模型
    在这里插入图片描述

2、点击“entry > src > main > ets > MainAbility > pages”,打开“index.ets”文件,添加Button按钮

// 添加按钮,以响应用户点击
        Button() {
          Text('Next')
            .fontSize(30)
            .fontWeight(FontWeight.Bold)
        }
        .type(ButtonType.Capsule)
        .margin({
          top: 20
        })
        .backgroundColor('#0D9FFB')
        .width('40%')
        .height('5%')

这里的按钮操作与stage模型中一致。
2、创建第二个页面,second.ets,依然是上两种方法,注意,这里我们建议使用page选项建立文件,这个节省了开发时间。
在这里插入图片描述
3、在second.ets文件里面添加按钮。

在这里插入图片描述
4、实现页面互转
在文件里面,通过按钮绑定onClick事件实现互转。

我们首先在index.ets文件里面添加:
在第一个页面中,跳转按钮绑定onClick事件,点击按钮时跳转到第二页。

// 跳转按钮绑定onClick事件,点击时跳转到第二页
        .onClick(() => {
          router.push({ url: 'pages/second' })
          // 若为API 9工程,则可使用以下接口
          // router.pushUrl({ url: 'pages/second' })

其次:
在第二个页面中,返回按钮绑定onClick事件,点击按钮时返回到第一页。

// 返回按钮绑定onClick事件,点击按钮时返回到第一页
        .onClick(() => {
          router.back()
        })

5、效果
在这里插入图片描述

三、JS(FA模型)

JS应用就是基于JS语言开发,与前面的Arkts语言有所偏差,但总体思路不变;
JS(FA)模型


http://www.niftyadmin.cn/n/5239644.html

相关文章

合理的从度设置参数

环境:主库双1模式 一。单SQL线程 1.pos模式 1.1 position mode 模式(最安全) master_info_repository table relay_log_info_repository table recovery_relay_log off sync_master_info 1 sync_relay_log 1 sync_relay_log_in…

【JavaEE进阶】 Spring核⼼与设计思想

文章目录 🌲Spring 是什么?🎄什么是IoC呢?🎈传统程序开发🎈传统程序开发的缺陷🎈如何解决传统程序的缺陷?🎈控制反转式程序开发🎈对⽐总结规律 🍀…

9-MapReduce开发技术

单选题 题目1:MapReduce自定义排序规则需要重写下列那项方法 选项: A readFields() B compareTo() C map() D reduce() 答案:B ------------------------------ 题目2:下面关于MapReduce模型中Map函数与Reduce函数的描述正确的是 选项: A…

python向文件写入数据

参考: https://www.jb51.net/article/282371.htm lines [line 1\n, line 2\n, line 3\n]with open(example.txt, w) as f:f.writelines(lines)def generate_lines():yield line 1\nyield line 2\nyield line 3\nwith open(example.txt, w) as f:f.writelines(gene…

解决使用ip来访问MySQL报错的问题

问题描述: "Host host.docker.internal is not allowed to connect to this MySQL server问题原因:     默认的配置只允许localhost来访问数据库 解决办法:     修改使用的账户,如:root账户对应的host设置&#xf…

回顾Django的第六天

1.session的使用 1.1Cookie 客户端浏览器上的键值对----为了做会话保持 -怎么来的? 服务端写入的---》服务端再返回的响应头中写入---》浏览器会自动取出来--》存起来 -key value 形式--》过期时间---》path---》http only。。。 -只要浏览器中有cookie&…

每日一练 | 华为认证真题练习Day142

1、路由器的主要功能,以下说法错误的是?(多选) A. 通过多种协议建立路由表 B. 根据路由表指导数据转发 C. 根据收到数据包的源IP地址进行转发 D. 实现相同网段设备之间相互通信 2、管理员发现无法通过TFTP传输文件到华为AR200…

Pytorch指定device(cuda or cpu)

torch.device() 在PyTorch中,你可以使用torch.device函数来设置设备(device)。这个函数接受一个字符串作为参数,该字符串可以是 "cpu" 或 "cuda",它指定了要在哪个设备上运行张量计算。 # 使用CP…