ArkTs基础语法一

1、条件渲染

Column() {if (this.count > 0) {Text('count is positive')}
}

2、循环渲染

ForEach(arr: any[], // 用于迭代的数组itemGenerator: (item: any, index?: number) => void, // 生成子组件的lambda函数keyGenerator?: (item: any, index?: number) => string // 用于给定数组项生成唯一且稳定的键值
)

3、装饰器

1、@State
@State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build方法进行UI刷新。
2、@Prop
@Prop与@State有相同的语义,但初始化方式不同。@Prop装饰的变量必须使用其父组件提供的@State变量进行初始化,允许组件内部修改@Prop变量,但更改不会通知给父组件,即@Prop属于单向数据绑定。

import {PageSon} from '../componments/PageSon'@Entry
@Component
struct PageParten {@State message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button('点击修改标题').onClick(()=>{this.message='aaaa'})PageSon({message:this.message})}.width('100%')}.height('100%')}
}
子组件```ts@Component
export struct PageSon {@Prop message: string;build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button('修改message的值').onClick(()=>{this.message='子组件修改的值'})}.width('100%')}.height('100%')}
}

父组件的通过@State装饰message,子组件通过@Link装饰message,这样就实现父组件给子组件单向传递参数
3、@Link
@Link装饰的变量可以和父组件的@State变量建立双向数据绑定,需要注意的是:@Link变量不能在组件内部进行初始化。
父组件

import {PageSon} from '../componments/PageSon'
@Entry
@Component
struct PageParten {@State message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button('点击修改标题').onClick(()=>{this.message='aaaa'})PageSon({message:$message})}.width('100%')}.height('100%')}
}

子组件

@Component
export struct PageSon {@Link message: string;build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button('修改message的值').onClick(()=>{this.message='子组件修改的值'})}.width('100%')}.height('100%')}
}

父组件的通过@State装饰message,子组件通过@Link装饰message,这样就实现父组件给子组件双向传递参数,注意父组件给子组件传递参数必须使用$符号。双向传递参数,子组件修改值,也会把父组件的值修改
4、@Provide和@Consume跨组件传递

@Entry
@Component
struct PageTest9 {@Provide message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button('修改message').onClick(()=>this.message=this.message+"-"+new Date().getSeconds())CompA()}.width('100%')}.height('100%')}
}@Component
struct CompA{build(){CompB()}
}@Component
struct CompB{build(){CompC()}
}@Component
struct CompC{build(){CompD()}
}@Component
struct CompD{@Consume message:string;build(){Column(){Text(this.message)Button('修改子组件的值').onClick(()=>{this.message='我是坏蛋,我要把数据修改为,我是大主宰'})}}
}

4、@Builder
@Builder装饰的方法用于定义组件的声明式UI描述,在一个自定义组件内快速生成多个布局内容。

在这里插入图片描述

4、组件的生命周期函数

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/263596.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据技术7:StarRocks极速全场景MPP数据库

前言:StarRocks原名DorisDB,是新一代极速全场景MPP数据库。StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 连接的多种源。一是通过这个 CDC 或者说通过这个 ETL 的方式去灌到这个 StarRocks 里面;二是还可以去直接的和这些老的 kafka 或…

分布式事务Seata(别名Seta)(持续学习中)

1.为什么学习他? 当一台机器的时候,只需要本地事务回滚就好了,还有MonogoDB最好不要放敏感数据,特别是旧的版本,没有事务功能(ACID), 分布式事务,也是属于多线程问题,就是把多台机器变成一台机器(他拥有更多线程,但是也要考虑网络问题),redis在一台机器是单线程的,但是多台机器…

AI 绘画 | Stable Diffusion 艺术二维码制作

前言 这篇文章教会你如果用Stable Diffusion WEB UI制作艺术二维码,什么是艺术二维码呢?就是普通二维码和艺术图片融合后的二维码图片,如下图所示。主要原理还是使用controlNet的control_v1p_sd15_qrcode_monster模型和光影模型control_v1p_sd15_brightness。 教程 准备…

Java IO流(四)(Autocloseable接口)

Autocloseable接口 实现Autocloseable的IO类在特定的情况下,可以自动释放资源。 JDK7时的写法: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class ByteStreamDemoJDK7 {public static void…

一文带你了解Linux学习网站:让你的编程之路更加顺畅!

介绍:Linux,通常指的是GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统。这个系统的核心由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)在1991年首次发布。Linux是基于POSIX和UNIX的多用户、多任务、支持多线…

AMC8竞赛历年真题集在线练习和解析,新增一套适合碎片时间练习卷

根据部分家长和孩子反馈,六分成长独家制作的AMC8历年在线真题集的在线试卷新增一套:每次从575道真题题库中抽取5道。更好地利用碎片化时间来做题,查漏补缺,了解AMC8竞赛的题目形式和考察知识点。 新试卷已经上线,之前拥…

洛谷P1287 盒子与球

题干&#xff1a; 现有 r 个互不相同的盒子和 n 个互不相同的球&#xff0c;要将这 n 个球放入 r 个盒子中&#xff0c;且不允许有空盒子。请求出有多少种不同的放法。 两种放法不同当且仅当存在一个球使得该球在两种放法中放入了不同的盒子。 数据范围&#xff1a; 0<n,r&l…

堆的相关时间复杂度计算(C语言)

目录 前言 建堆的时间复杂度 向上调整建堆的时间复杂度 向下调整建堆的时间复杂度 维护堆的时间复杂度 top K问题的时间复杂度 前言 在前面的三篇文章中我们成功的实现了堆排序的升降序以及基于堆的top K问题&#xff0c;现在我们来解决它们的时间复杂度问题 建堆的时间…

我有才专属定制适合个人的知识付费平台,打造个性化品牌与自主管理体验

在当今数字化时代&#xff0c;知识付费平台已经成为人们获取专业知识、提升自身素质的重要渠道。然而&#xff0c;公共知识付费平台虽然内容丰富&#xff0c;但难以满足个人或企业个性化的需求和品牌打造。因此&#xff0c;我们提出了专属定制适合个人的知识付费平台的概念&…

108. 将有序数组转换为二叉搜索树

给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输…

2023年最新prometheus + grafana搭建和使用

一、安装prometheus 1.1 安装 prometheus官网下载地址 sudo -i mkdir -p /opt/prometheus #移动解压后的文件名到/opt/,并改名prometheus mv prometheus-2.45 /opt/prometheus/ #创建一个专门的prometheus用户&#xff1a; -M 不创建家目录&#xff0c; -s 不让登录 useradd…

面向AOP(2)spring

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…