您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > 鸿蒙

华为鸿蒙应用开发的JavaScript UI设计概述

时间:2022-04-12 09:58:52  来源:  作者:李景能

在开始本章正式内容之前先补充讲一下前面章节没有讲到的一个小细节问题。

在我们每次关闭DevEco Studio不要直接点击右上角的关闭按钮,而是选择菜单“文件 > 关闭项目”

「鸿蒙开发 5」华为鸿蒙应用开发的JavaScript UI设计概述

 

这样我们就回到了欢迎界面

「鸿蒙开发 5」华为鸿蒙应用开发的JavaScript UI设计概述

 

当我们下次启动程序的时候显示的就是欢迎界面,而不是直接进入上次编辑的项目界面。

本章目标:

了解华为鸿蒙应用开发的JavaScript UI

 

启动DevEco Studio,打开我们在「鸿蒙开发 2」第一个华为鸿蒙(HarmonyOS)应用程序(App)章节中创建的项目HelloWorld。

「鸿蒙开发 5」华为鸿蒙应用开发的JavaScript UI设计概述

 

 

然后展开 pages 目录下的两个页面对应的目录,我们可以看到每个页面都包含了三个文件。

「鸿蒙开发 5」华为鸿蒙应用开发的JavaScript UI设计概述

 

这就是JAVAScript UI所包含的结构(HML)、表现(css)和逻辑(JavaScript)共3个主要部分:

(1)HML:鸿蒙标记语言(HarmonyOS Markup Language),用于定义用户界面的结构。通过HML编写的界面结构文件后缀名为.hml,因此HML既是一门语言,也是一种文件类型。要特别注意,虽然HML与html语法相似,但是仍然存在很多区别。

(2)CSS:层叠样式表(Cascading Style Sheets),用于定义如何显示HML组件。

(3)JavaScript:一种解释性脚本语言,用于处理用户界面的简单业务逻辑,支持ECMAScript 6语法。

简言之,就是HML用于构建页面,CSS用于美化页面,JavaScript用于处理用户与页面的交互。

这里和Web开发的html,css,javascript很类似,但不完全一样。

JavaScript UI支持手机(Phone)、平板(Tablet)、智慧屏(TV)或智能穿戴(Wearable)等设备的应用开发。

我们在第2章中用于跳转页面时用到了JavaScript UI的router模块

<!-- index.js -->
import router from '@system.router';

export default {
    launch() {
        router.push({
            uri: 'pages/detAIls/details'
        })
    }
}

router模块主要包含以下方法:

(1)push(obj:IForwardPara):跳转到另外一个页面,而且原先的页面仍然存在,只是被遮盖而已。通过IForwardPara可以定义跳转的页面和传递的数据,分别通过其URL属性和params属性定义。

(2)replace(obj:IForwardPara):跳转到另外一个页面,并销毁当前页面。通过IForwardPara可以定义跳转的页面和传递的数据,分别通过其URL属性和params属性定义。

(3)back(obj?:IBackPara):返回上一个页面。通过IBackPara可以定义返回的页面路径(可选),通过该对象内的path属性定义。

(4)clear():清除被遮盖的页面,仅保留当前显示的页面。

(5)getLength():获取当前页面栈长度,即栈内页面数量。

(6)getState():获取当前页面栈状态,返回IRouterState对象,该对象包括index、name和path共3个变量。index变量为整型,表示当前页面所在页面栈的位置,从底层到顶层是从1开始计数的。name为字符串,表示当前页面文件名。path为字符串,表示当前页面的路径。

还有我们在launch()方法中用router模块的push方法调用的uri地址是哪里来的呢?

我们打开“Main > config.json”文件,定位到“js”字段

「鸿蒙开发 5」华为鸿蒙应用开发的JavaScript UI设计概述

 

这是我们创建页面时DecEco Studio为我们自动添加的。

现在我们可以修改一下第二个页面,添加一个按钮,点击按钮后可以回到第一个页面,以便更好地理解这些知识。

1 选择“entry > src > main > js > default > pages >detail”,打开detail.hml文件,添加一个按钮

<div class="container">
    <text class="text">
        Hi, I'm always here.
    </text>
<!-- 添加一个按钮 -->
    <button class="button" type="capsule" value="Back" onclick="back"></button>
</div>

2 打开detail.css文件,添加按钮的样式

/* class选择器,在hml文件中定义的class属性,这里就是class="button" */
.button{
    width: 240px;
    height: 60px;
    background-color: #007dff;
    font-size: 30px;
    text-color: white;
    margin-top: 20px;
}

3 打开detail.js,实现返回第一个页面的跳转

// detail.js
import router from '@system.router';

export default {
    back() {
        router.push({
            uri: 'pages/index/index'    // 这里的地址是在config.json中已经定义好的
        });
    }
}

注:其实这里我们可以直接使用router.back();就可以实现返回的功能了。

4 打开预览器Previewer,点击Back按钮,我们可以看到功能已经实现了。

「鸿蒙开发 5」华为鸿蒙应用开发的JavaScript UI设计概述

 



Tags:JavaScript UI   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
华为鸿蒙应用开发的JavaScript UI设计概述
在开始本章正式内容之前先补充讲一下前面章节没有讲到的一个小细节问题。在我们每次关闭DevEco Studio不要直接点击右上角的关闭按钮,而是选择菜单“文件 > 关闭项目” 这样...【详细内容】
2022-04-12  Search: JavaScript UI  点击:(1022)  评论:(0)  加入收藏
▌简易百科推荐
OpenHarmony - 基于ArkUI框架实现日历应用
前言对于刚刚接触OpenHarmony应用开发的开发者,最快的入门方式就是开发一个简单的应用,下面记录了一个日历应用的开发过程,通过日历应用的开发,来熟悉基本图形的绘制,ArkUI的组件...【详细内容】
2024-01-16    51CTO  Tags:OpenHarmony   点击:(58)  评论:(0)  加入收藏
鸿蒙工程师,熬来了「造富时代」
  作者|张俊  来源|新浪科技  ID|techsina  “套壳安卓”的质疑言犹在耳,如今华为正在计划将鸿蒙OS与安卓完全脱离。  此前,鸿蒙OS为了迅速扩大用户规模,采取了兼容安卓...【详细内容】
2023-11-20    锌财经  Tags:鸿蒙   点击:(218)  评论:(0)  加入收藏
OpenHarmony:如何使用HDF驱动控制LED灯
一、程序简介该程序是基于OpenHarmony标准系统编写的基础外设类:RGB LED。目前已在凌蒙派-RK3568开发板跑通。详细资料请参考官网:https://gitee.com/Lockzhiner-Electronics/...【详细内容】
2023-09-08    51CTO  Tags:OpenHarmony   点击:(264)  评论:(0)  加入收藏
深入了解华为OpenHarmony开源系统的架构与功能
当下最火的科技圈新闻,莫过于华为即将发布的Mate 60系列手机,但是今天摸鱼君不讲这些,毕竟我也没抢到,我也不是专业测评。但是以我所长说说它搭载鸿蒙系统的一些内容。 鸿蒙系...【详细内容】
2023-09-07  摸鱼IT  微信公众号  Tags:OpenHarmony   点击:(212)  评论:(0)  加入收藏
鸿蒙操作系统开发 搭建环境
2019年8月9日,华为在东莞举行华为开发者大会,正式发布鸿蒙操作系统;2020年9月推出了鸿蒙2.0,全面使能全场景生态,具备跨设备、服务流转、极速直达、可视可说、隐私安全五大能力。...【详细内容】
2023-09-07  清华计算机学堂  微信公众号  Tags:鸿蒙   点击:(198)  评论:(0)  加入收藏
OpenHarmony中使用MQTT
MQTT**(**消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而...【详细内容】
2023-08-29    51CTO  Tags:OpenHarmony   点击:(438)  评论:(0)  加入收藏
OpenHarmony组件复用示例
OpenHarmony组件复用示例 摘要:在开发应用时,有些场景下的自定义组件具有相同的组件布局结构,仅有状态变量等承载数据的差异。这样的组件缓存起来,需要使用到该组件时直接复用,...【详细内容】
2023-08-28  zhushangyuan  51CTO  Tags:OpenHarmony   点击:(355)  评论:(0)  加入收藏
HarmonyOS开发第一步,熟知开发工具DevEco Studio
俗话说的好,工欲善其事,必先利其器,走进HarmonyOS第一步,开发工具必须先行,当然了,关于开发工具的使用,官网和其他的博客也有很多的讲解,但是并没有按照常用的功能进行概述,如果需要...【详细内容】
2023-08-22  程序员一鸣  今日头条  Tags:HarmonyOS   点击:(206)  评论:(0)  加入收藏
鸿蒙元服务开发实例:桌面卡片上的电动自行车助手E-Bike
E-Bike是一款基于HarmonyOS开发的元服务,以万能卡片的形式给骑行提供便捷服务。首先需要完成HarmonyOS开发环境搭建。一、元服务E-Bike简介E-Bike是一款基于HarmonyOS开发的...【详细内容】
2023-08-16    51CTO  Tags:鸿蒙   点击:(304)  评论:(0)  加入收藏
OpenHarmony运行docker详细步骤
本文将介绍如何在OpenHarmony内核上运行docker容器。 目录 1.环境和设备 2.准备支持Docker容器的OpenHarmony内核 3.编译烧录镜像 4.安装docker容器引擎组件 5.格式...【详细内容】
2023-07-28  离北况归  51CTO  Tags:OpenHarmony   点击:(406)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条