学习鸿蒙基础(2)
arkts是声名式UI
DevEcoStudio的右侧预览器可以预览。有个TT的图标可以看布局的大小。和html的布局浏览很像。
上图布局对应的代码:
@Entry //入口
@Component
struct Index {@State message: string = 'Hello Harmonyos' //@State 数据改变了也刷新的标签build() {Row() {Column() {Text(this.message).fontSize(30).margin(10).padding(20).backgroundColor("#333333").fontColor(Color.White).border({width:3,color:Color.Blue}).borderRadius(10).onClick(() => {console.log("点击了text")this.message = "text"}).fontWeight(FontWeight.Bold)Divider().margin(10)Button("click").width(100).height(50).onClick(this.read.bind(this))}.width('100%').height('50%')}.height('100%').width('90%')}// 方法多的话写到这里read() {console.log("我是button的点击事件")this.message = "button"}
}
新建页面的时候选择page。就会主动把该页面添加在路由中。

此处就是新建的页面的路由。和微信小程序是一样一样的。要加到这个page上。

1、自定义组件内,自定义构件函数。
@Builder 注释来实现
@Entry //入口
@Component
struct PageB {@State message: string = 'Hello World' //@State 数据改变了也刷新的标签build() {Row() {Column() {this.TextLabel("账号")this.TextLabel("密码")Divider().margin(10)Button("click").width(100).height(50).onClick(this.read.bind(this))}.width('100%').height('50%')}.height('100%').width('90%')}// 方法多的话写到这里read() {console.log("我是button的点击事件")this.message = "button"}@Builder//自定义组件内,自定义构件函数TextLabel(title:string ){Text(title+this.message).fontSize(16).margin(10).padding(10).width(200).height(50).backgroundColor("#333333").fontColor(Color.White).border({width:3,color:Color.Blue}).borderRadius(10).onClick(() => {this.message ="admin"}).fontWeight(FontWeight.Bold)}
}
2.全局自定义构建函数
@Entry //入口
@Component
struct PageB {@State message: string = 'Hello World' //@State 数据改变了也刷新的标签build() {Row() {Column() {TextLabel("账号")TextLabel("密码")Divider().margin(10)Button("click").width(100).height(50).onClick(this.read.bind(this))}.width('100%').height('50%')}.height('100%').width('90%')}// 方法多的话写到这里read() {console.log("我是button的点击事件")this.message = "button"}
}
@Builder//全局自定义构件函数
function TextLabel(title:string ){Text(title+this.message).fontSize(16).margin(10).padding(10).width(200).height(50).backgroundColor("#333333").fontColor(Color.White).border({width:3,color:Color.Blue}).borderRadius(10).onClick(() => {this.message ="admin"//在全局不建议去修改message}).fontWeight(FontWeight.Bold)
}
3、全局自定义函数实现简单的登录功能。采用引用传值,函数回调的方法。
@Entry //入口
@Component
struct PageB_build_param {@State message: string = 'Hello World' //@State 数据改变了也刷新的标签@State username: string = ''@State password: string = ''build() {Row() {Column() {text({ title: "用户", valueStr:this.username, cb: (value:string) => {this.username=value} })text({ title:"密码",valueStr:this.password,cb:(value:string)=>{this.password=value} })Divider().margin(10)Row() {Button("登录").fontSize(16).width(100).height(50).margin({ right: 10, left: 10 }).onClick(this.login.bind(this))Button("重置").fontSize(16).width(100).height(50).margin({ left: 10, right: 10 }).onClick(this.reset.bind(this))}}.width('100%').height('50%')}.height('100%').width('100%')}//登录login() {console.log(this.username+"----"+this.password)}reset() {this.username = ""this.password = ""}
}@Builder //全局自定义构件函数
function text($$: { title: string,valueStr: string,cb: (value: string) => void }) {Row() {Text($$.title).fontSize(16).margin(10).padding(10).width(80).textAlign(TextAlign.Center).height(50).backgroundColor("#333333").fontColor(Color.White).border({width: 3,color: Color.Blue}).borderRadius(10).fontWeight(FontWeight.Bold)TextInput({ text: $$.valueStr }).width(200).height(50).fontSize(16).onChange((value: string) => {$$.cb(value)})}.alignItems(VerticalAlign.Center)}

相关文章:
学习鸿蒙基础(2)
arkts是声名式UI DevEcoStudio的右侧预览器可以预览。有个TT的图标可以看布局的大小。和html的布局浏览很像。 上图布局对应的代码: Entry //入口 Component struct Index {State message: string Hello Harmonyos //State 数据改变了也刷新的标签build() {Row()…...
2024年美国大学生数学建模竞赛思路与源代码【2024美赛C题】
B站账号,提前关注,会有直播:有为社的个人空间-有为社个人主页-哔哩哔哩视频 (bilibili.com) 题目 待定 问题一 思路 待定 模型 待定 程序 待定 问题二 待定 思路 待定 模型 待定 程序 待定...
Windows11搭建GPU版本PyTorch环境详细过程
Anaconda安装 https://www.anaconda.com/ Anaconda: 中文大蟒蛇,是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。从官网下载Setup:点击安装,之后勾选上可以方便在普通命令行cmd和PowerShell中使用…...
Springboot项目基础配置:小白也能快速上手!
推荐文章 给软件行业带来了春天——揭秘Spring究竟是何方神圣(一) 给软件行业带来了春天——揭秘Spring究竟是何方神圣(二) 给软件行业带来了春天——揭秘Spring究竟是何方神圣(三) 给软件行业带来了春天—…...
20240127在ubuntu20.04.6下配置whisper
20240131在ubuntu20.04.6下配置whisper 2024/1/31 15:48 首先你要有一张NVIDIA的显卡,比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡!】800¥ 2、请正确安装好NVIDIA最新的驱动程序和CUDA。可选安装! 3、配置whispe…...
C# 递归执行顺序
为了方便进一步理解递归,写了一个数字输出 class Program {static void Main(string[] args){int number 5;RecursiveDecrease(number);}static void RecursiveDecrease(int n){if (n > 0){Console.WriteLine("Before recursive call do : " n);Rec…...
go 实现暴力破解数独
一切罪恶的来源是昨晚睡前玩了一把数独,找虐的选了个最难的模式,做了一个多小时才做完,然后就睡不着了..........程序员不能受这委屈,今天咋样也得把这玩意儿破解了 破解思路(暴力破解加深度遍历) 把数独…...
go语言-字符串处理常用函数
本文介绍go语言处理字符串类型的常见函数。 ## 多行字符串 在 Go 中创建多行字符串非常容易。只需要在你声明或赋值时使用 () 。 str : This is a multiline string. ## 字符串的拼接 go // fmt.Sprintf方式拼接字符串 str1 : "abc" str2 : "def" …...
DevOps落地笔记-05|非功能需求:如何有效关注非功能需求
上一讲主要介绍了看板方法以及如何使用看板方法来解决软件研发过程中出现的团队过载、工作不均、任务延期等问题。通过学习前面几个课时介绍的知识,你的团队开始源源不断地交付用户价值。用户对交付的功能非常满意,但等到系统上线后经常出现服务不可用的…...
vs 撤销本地 commit 并保留更改
没想到特别好的办法,我想的是用 vs 打开 git 命令行工具 然后通过 git 命令来撤销提交,尝试之前建议先建个分支实验,以免丢失代码, git 操作见 git 合并多个 commit / 修改上一次 commit...
深度解读NVMe计算存储协议-1
随着云计算、企业级应用以及物联网领域的飞速发展,当前的数据处理需求正以前所未有的规模增长,以满足存储行业不断变化的需求。这种增长导致网络带宽压力增大,并对主机计算资源(如内存和CPU)造成极大负担,进…...
CHS_06.2.3.4_2+用信号量实现进程互斥、同步、前驱关系
CHS_06.2.3.4_2用信号量实现进程互斥、同步、前驱关系 知识总览信号量机制实现进程互斥信号量机制实现进程同步信号量机制实现前驱关系 知识回顾 各位同学 大家好 在这个小节中 我们要学习怎么用信号量机制来实现进程的同步互制关系 知识总览 那么 我们之前学习了互斥的几种软…...
Web实战丨基于Django的简单网页计数器
文章目录 写在前面Django简介主要程序运行结果系列文章写在后面 写在前面 本期内容 基于django的简单网页计数器 所需环境 pythonpycharm或vscodedjango 下载地址 https://download.csdn.net/download/m0_68111267/88795604 Django简介 Django 是一个用 Python 编写的高…...
mysql8安装基础操作(一)
一、下载mysql8.0 1.查看系统glibc版本 这里可以看到glibc版本为2.17,所以下载mysql8.0的版本时候尽量和glibc版本对应 [rootnode2 ~]# rpm -qa |grep -w glibc glibc-2.17-222.el7.x86_64 glibc-devel-2.17-222.el7.x86_64 glibc-common-2.17-222.el7.x86_64 gl…...
MIT6.5830 实验0
前置 本次实验使用 Golang 语言实现,在之前的年份中,都是像 cs186 那样使用 Java 实现。原因: Golang 语言作为现代化语言,简单易上手但功能强大。 使参加实验的同学有同一起跑线,而不是像Java那样,有些同…...
【简便方法和积累】pytest 单元测试框架中便捷安装插件和执行问题
又来进步一点点~~~ 背景:之前写了两篇关于pytest单元测试框架的文章,本篇内容对之前的做一个补充 一、pytest插件: pytest 有非常多的插件,很方便,以下为插件举例: pytest,pytest-html&#x…...
Zabbix数据库分离与邮件报警
基础环境:要有zabbix服务端与被监控端实验目标:源数据库与服务端存放在一台服务器上,分离后源数据库单独在一台服务器上,zabbix服务端上不再有数据库。环境拓扑图: 实验步骤: 1.在8.7服务器上安装相同版本…...
mybatisplus-多数据源配置
1. 流程 pom文件yml配置多数据源具体服务添加注解DS(“***”) 1.pom文件 <!--mybatis plus 起步依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</vers…...
微信小程序(二十八)网络请求数据进行列表渲染
注释很详细,直接上代码 上一篇 新增内容: 1.GET请求的规范 2.数据赋值的方法 源码: index.wxml <!-- 列表渲染基础写法,不明白的看上一篇 --> <view class"students"><view class"item">&…...
ubuntu22.04 安装conda
要在Ubuntu 22.04上安装Anaconda,可以遵循以下步骤: 首先,打开终端并更新系统包仓库,也需要安装curl工具,这可以通过以下命令完成: sudo apt update && sudo apt install curl -y使用curl命令行工具…...
C# 工业级温度监控软件:支持多PLC通信与实时曲线绘制
前言工业自动化领域,温度监控是保障生产安全与产品质量的核心环节。面对多台设备分散、数据孤岛严重的现状,开发一套高效、可视化的上位机系统显得尤为重要。本文将详细介绍一款基于 WinForms 与 S7.Net 开发的温度监控系统。该系统不仅实现了对多台西门…...
三步解锁wxappUnpacker:从小白到高手的蜕变指南
三步解锁wxappUnpacker:从小白到高手的蜕变指南 【免费下载链接】wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 工具定位:小程序逆向工程的瑞士军刀 wxappUnpacker是一款专注于微信小程序解包的开源工具集&am…...
GIS小白也能搞定!用QGIS加载2023版全国自然保护区SHP数据的保姆级教程
GIS小白也能搞定!用QGIS加载2023版全国自然保护区SHP数据的保姆级教程 第一次接触GIS软件时,看着满屏的专业术语和复杂界面,很多人都会感到无从下手。但别担心,今天我们就用最通俗易懂的方式,带你一步步完成全国自然保…...
你的电动车续航打折了?可能是AMT换挡逻辑没调好!聊聊经济性换挡那些事儿
你的电动车续航打折了?可能是AMT换挡逻辑没调好!聊聊经济性换挡那些事儿 最近在车主群里经常看到这样的抱怨:"明明官方标称续航500公里,怎么我开起来连400都跑不到?"作为一位开了三年电动车的"老司机&q…...
iStore软件中心:OpenWRT插件管理解决方案与实战指南
iStore软件中心:OpenWRT插件管理解决方案与实战指南 【免费下载链接】istore 一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app s…...
3大核心策略构建平台化电商生态:Lilishop多商户SaaS架构深度解析
3大核心策略构建平台化电商生态:Lilishop多商户SaaS架构深度解析 【免费下载链接】lilishop 商城 JAVA电商商城 多语言商城 uniapp商城 微服务商城 项目地址: https://gitcode.com/gh_mirrors/li/lilishop 在数字化转型浪潮中,平台化电商已成为企…...
BoltDB vs Redis 读性能对比:实测表现与原理差异
一、前言 BoltDB(bbolt)与 Redis 都是高并发场景下常见的键值存储,但存储架构、存储介质、并发模型完全不同,导致两者在读性能、延迟、并发扩展性上呈现巨大差异。 本文从原理、延迟、并发读能力、资源开销四个维度对比两者的读性…...
Halcon角度计算双雄对比:orientation_region和smallest_rectangle2到底该用哪个?
Halcon角度计算双雄对比:orientation_region与smallest_rectangle2的实战抉择 在工业视觉检测中,区域角度计算是定位、对齐和测量的基础操作。Halcon作为机器视觉领域的标杆工具,提供了orientation_region和smallest_rectangle2两个核心算子来…...
leetcode 1534. 统计好三元组 Count Good Triplets
Problem: 1534. 统计好三元组 Count Good Triplets 用变量存储数组中的值,防止多次访问IO Code class Solution { public:int countGoodTriplets(vector<int>& arr, int a, int b, int c) {int n arr.size(), a1, b1, c1, ans 0;for(int i 0; i <…...
突破性Unity游戏插件框架实战指南:BepInEx从零到精通的完全手册
突破性Unity游戏插件框架实战指南:BepInEx从零到精通的完全手册 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx是一款专为Unity游戏设计的革命性插件框架&…...
