鸿蒙(HarmonyOS)应用开发——生命周期、渲染控制、状态管理装饰器
生命周期
任何程序都是有一定的生命周期的。生命周期是记录从产生到销毁的过程;如果熟悉前端vue.js的话,就可以很好的理解生命周期。
自定义组件生命周期
ArkTS中,自定义组件提供了两个生命周期函数:aboutToAppear() 和aboutToDisappear();由于生命周期函数是由系统来确定他调用的时机,所以无法手动调用回调函数
aboutToAppear(): 在build函数之前执行对数据进行初始化
aboutToDisappear():销毁时调用

@Component
export struct TitleComponent{@Link isRefreshData: boolean;message: string = 'Hello World111'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%').onClick(()=>{this.isRefreshData=!this.isRefreshData})}}aboutToAppear(){}aboutToDisappear(){}
}
页面入口组件
被@Entry 装饰的组件,系统还额外提供了三个函数:onPageShow()、onBackPress()、onPageHide();
onPageShow: 软件进入页面时执行
onBackPress:返回时执行
onPageHide:按手机home键返回手机主界面执行

渲染控制
条件渲染
使用if/else if /else 进行条件渲染
@Component
export struct TitleComponent{@Link isRefreshData: boolean;message: string = 'Hello World111'build() {Row() {Column() {if(this.isRenderText()){Text(this.message+"111")}else{Text(this.message)}}}}isRenderText(){return false;}
}
循环渲染
使用ForEach 迭代数组,并为每个数组项创建响应的组件;ForEach语法:
ForEach([],子组件的生成函数,键值生成器)
@Component
export struct TitleComponent{@Link isRefreshData: boolean;message: string = 'Hello World111'dataList:[]=[];build() {Row() {Column() {if(this.isRenderText()){Text(this.message+"111")}else{Text(this.message)}}}}@Builder genList(){Column(){List(){ForEach(this.dataList,(item:RankModel,index?:Number)=>{},(item:RankModel)=>JSON.stringify(item))}}}isRenderText(){return false;}
}
组件状态管理装饰器和@Builder装饰器
@State
组件内部的状态数据
@Prop
与@State有相同的语义,但初始化方式不同;
@Prop装饰的变量必须使用其父组件的@State变量进行初始化,允许组件内部修改,但更改不会通知给父组件
@Link
可以和父组件@State 变量建立双向数据绑定
@Builder
用于定义组件的声明式UI描述,在一个自定义组件内快速生成多个布局内容
相关文章:
鸿蒙(HarmonyOS)应用开发——生命周期、渲染控制、状态管理装饰器
生命周期 任何程序都是有一定的生命周期的。生命周期是记录从产生到销毁的过程;如果熟悉前端vue.js的话,就可以很好的理解生命周期。 自定义组件生命周期 ArkTS中,自定义组件提供了两个生命周期函数:aboutToAppear() 和aboutTo…...
yarn:无法加载文件 C:\Users\***\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本
原因:PowerShell 脚本的执行有着严格的安全策略限制! 解决方案:管理员身份启动Windows PowerShell 在命令行中输入set-ExecutionPolicy RemoteSigned 再使用yarn就可以了...
精彩预告 | OpenHarmony即将亮相MTSC 2023
MTSC 2023 第12届中国互联网测试开发大会(深圳站)即将于2023年11月25日,在深圳登喜路国际大酒店举办,大会将以“1个主会场4个平行分会场”的形式呈现,聚集一众顶尖技术专家和行业领袖,围绕如今备受关注的行…...
无线WiFi安全渗透与攻防(国外篇):使用 Aircrack-ng 破解 WEP 密码
使用 Aircrack-ng 破解 WEP 密码 使用 Aircrack-ng 破解 WEP 密码一. 用 Aircrack-ng 破解 WEP 密码 - 背景知识网卡与网卡芯片WEP 加密协议WEP 所使用的身份认证协议二. 使用 Aircrack-ng 破解 WEP 密码 - 破解原理破解机理三. 使用 Aircrack-ng 破解 WEP 密码 - aircrack-ng …...
广告机/商业显示屏_基于MT8788安卓主板方案
安卓主板在广告机领域扮演着重要的角色。无论是在商场、车站、酒店、电梯、机场还是高铁站,LED广告机广泛应用,并通过不同方式进行播放和管理。 广告机/商业显示屏_基于MT8788安卓主板方案 基于MT8788安卓主板方案的广告机采用了联发科MT8788八核芯片方案…...
字符串转换成十进制整数
编程要求 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则…...
面向对象高级---接口
接口 概念:接口就是一种公共的规范标准,只要符合规范,大家都可以通用 java中接口存在的两个意义 用来定义规范用来做功能的扩展 接口的特点 接口用关键字interface修饰 public interface 接口名{}类实现接口用implements表示 public class 类名 implements 接口名{}接口…...
轻松入门自然语言处理系列 项目3 基于Linear-CRF的医疗实体识别
文章目录 前言一、项目概况1.项目描述2.数据描述3.项目框架二、核心技术1.实体识别数据标注2.文本特征工程3.CRF模型4.BiLSTM-CRF模型三、项目实施1.读取数据2.数据标注3.文本特征工程4.模型训练5.模型评估6.BiLSTM-CRF总结前言 本文主要介绍了以Linear-CRF为基础模型进行医疗…...
批量按顺序1、2、3...重命名所有文件夹里的文件
最新: 最快方法:先用这个教程http://文件重命名1,2......nhttps://jingyan.baidu.com/article/495ba841281b7079b20ede2c.html再用这个教程去空格:利用批处理去掉文件名中的空格-百度经验 (baidu.com) 以下为原回答 注意文件名有空格会失败…...
你知道吗,这些行业的人也是工程师哦
止这些,其工作涉及多种领域,也就是说,有很多细分行业的开发人员也算是电子工程师,下面我们来看看有哪些电子工程师! 1、应用电子工程师 主要负责将电子技术与特定应用相结合,设计并开发满足特定需求的电子…...
1.6 C语言之数组概述
1.6 C语言之数组概述 一、数组二、练习 一、数组 所谓数组,就是内存中一片连续的空间,可以用来存储一组同类型的数据 数组有下标,从0开始,可以理解为是给数组中的元素编号,便于后续寻址访问 我们来编写一个程序&…...
论文阅读_生成式Agent
英文名称: Generative Agents: Interactive Simulacra of Human Behavior 中文名称: 生成代理:**人类行为的交互式模拟** 文章: http://arxiv.org/abs/2304.03442 代码: https://github.com/joonspk-research/generative_agents 作者: Joon Sung Park 机构: 斯坦福大…...
uniapp时间选择器
Uniapp 是一套基于Vue.js 开发的跨平台开发框架,它能够以一套代码编译成多个平台的应用,包括 iOS、Android、H5 等。要实现时间选择器可以使用uni-app提供的组件picker,它可以用于选择器、时间选择器、日期选择器等场景。 以下是一个简单的时…...
2017年3月24日 Go生态洞察:HTTP/2服务器推送技术深度解析
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
x86 汇编语言介绍001
1,搭建编程环境 1.1 NASM 基本信息 示例使用的汇编器为 nasm 主页: https://www.nasm.us/https://www.nasm.us/ 下载最新的稳定版源代码 wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz 1.2解压并编译安装 tar zx…...
Oracle(2-5)Usage and Configuration of the Oracle Shared Server
文章目录 一、基础知识1、 Server Configurations服务器配置2、Dedicated server process专用服务器进程3、Oracle Shared ServerOracle共享服务器4、Benefits of Shared Server 共享服务器的优点5、Processing a Request 处理请求6、Configuring Shared Server 配置共享服务器…...
语音合成综述Speech Synthesis
一、语音合成概述 语音信号的产生分为两个阶段,信息编码和生理控制。首先在大脑中出现某种想要表达的想法,然后由大脑将其编码为具体的语言文字序列,及语音中可能存在的强调、重读等韵律信息。经过语言的组织,大脑通过控制发音器…...
Docker+ Jenkins+Maven+git自动化部署
环境:Centos7 JDK1.8 Maven3.3.9 Git 2.40 Docker 20.10.17 准备工作: 安装Docker Centos7默认的yum安装的docker是1.13,版本太低,很多镜像都要Docker版本要求,升级Docker版本。 卸载已安装Docker: yum …...
MySQL- 创建可以远程访问的root账户
创建用户 默认的root用户只能当前节点localhost访问,是无法远程访问的,所以,我们要创建一个root账户,帮助用户远程访问。 create user root% IDENTIFIED WITH mysql_native_password BY 1234;这个命令是在MySQL数据库管理系统中…...
Godot
前言 为什么要研究开源引擎 主要原因有: 可以享受“信创”政策的红利,非常有利于承接政府项目。中美脱钩背景下,国家提出了“信创”政策。这个政策的核心就是,核心技术上自主可控。涉及的产业包括:芯片、操作系统、数据…...
手把手配置华为交换机VLAN:为移动IMS专线搭建安全私网(含SBC对接要点)
华为交换机VLAN实战:构建IMS专线安全私网的7个关键步骤 在运营商级语音通信项目中,IMS专线的网络隔离是保障业务稳定性的第一道防线。去年某省会城市政务云项目就曾因VLAN配置疏漏,导致语音专线流量与公众宽带混传,最终引发大规模…...
从一次线上故障复盘:我是如何用Ceph的PG状态和CRUSH规则定位数据迁移问题的
从一次线上故障复盘:我是如何用Ceph的PG状态和CRUSH规则定位数据迁移问题的 凌晨3点17分,监控系统突然弹出一连串告警——集群IOPS跌至正常值的30%,部分业务请求开始超时。作为值班工程师,我立即登录Ceph集群查看状态,…...
别再死磕公式了!用Python+NumPy手把手带你仿真SS-OCT成像全过程
用PythonNumPy实战SS-OCT成像仿真:从干涉原理到三维重建 光学相干层析技术(OCT)正在重塑医学影像的边界,而扫频光源OCT(SS-OCT)凭借其高速扫描特性成为眼科、皮肤科等领域的明星技术。但当你翻开教科书&…...
从游戏逻辑到用户权限:用C# if else玩转Razor Pages动态网站开发
从游戏逻辑到用户权限:用C# if else玩转Razor Pages动态网站开发 在ASP.NET Core Razor Pages开发中,条件逻辑就像游戏中的关卡设计——它决定了用户能看到什么、能做什么。想象一下:当玩家积分达到100分时解锁新地图,VIP用户可以…...
Windows Server上配置OpenSSH密钥登录的完整流程(含权限踩坑实录)
Windows Server上配置OpenSSH密钥登录的完整流程(含权限踩坑实录) 在Windows Server环境中配置安全的远程访问方案,OpenSSH已成为越来越多运维团队的首选。不同于Linux系统原生支持SSH协议,Windows平台上的OpenSSH实现有其独特的配…...
5步快速上手Meta Llama 3 8B Instruct GGUF模型完整教程
5步快速上手Meta Llama 3 8B Instruct GGUF模型完整教程 【免费下载链接】Meta-Llama-3-8B-Instruct-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/SanctumAI/Meta-Llama-3-8B-Instruct-GGUF Meta Llama 3 8B Instruct GGUF模型是Meta公司开发的先进对话优化大语…...
别再只学协议了!从AVB到TSN:梳理车载以太网确定性演进的完整脉络与核心挑战
从AVB到TSN:车载以太网确定性技术的演进逻辑与工程实践 当一辆自动驾驶汽车在高速公路上以120km/h行驶时,制动指令的10毫秒延迟意味着车辆会多行进33厘米——这个距离可能决定一次避障的成败。正是这种严苛的实时性要求,推动着车载网络从&quo…...
告别手搓Modbus协议帧:用libmodbus 3.1.6在Windows/Linux上快速搭建主从机通信
工业自动化开发者的效率革命:用libmodbus实现Modbus协议的高效开发 在工业自动化领域,Modbus协议因其简单可靠的特点,已成为连接PLC、传感器和上位机系统的通用语言。然而,对于许多开发者而言,手动构建Modbus协议帧却是…...
告别依赖地狱:用linuxdeployqt和dpkg为你的Qt应用打造一键安装的deb包(Ubuntu 20.04实测)
从开发到交付:构建零依赖的Qt应用Deb包全流程指南 在Linux生态中,Qt应用的打包分发一直是个令人头疼的问题。想象一下这样的场景:你花费数月精心开发的应用程序,用户下载后却因为缺少某个.so文件而无法运行;或是依赖库…...
从GSM到5G NR:手把手教你用ADS2022的【Sources - Modulated】面板搭建通信系统仿真
从GSM到5G NR:用ADS2022构建完整通信系统仿真的实战指南 在无线通信系统设计中,仿真环节往往决定着产品研发的成败。Keysight的ADS2022作为行业标杆工具,其Sources - Modulated面板提供的丰富信号源模型,能够精准模拟从2G到5G的各…...
