当前位置: 首页 > news >正文

手机端制作游戏的app宁波seo推广

手机端制作游戏的app,宁波seo推广,网站关键词优化费用,网页三剑客是哪三个软件第一个ArkTS项目实践-ArkTS 第一个ArkTS项目实践-ArkTS自定义组件的组成配置属性与布局配置属性布局 改变组件状态循环渲染列表数据代码ToDoItem组件ToDoList页面 效果参考资料 第一个ArkTS项目实践-ArkTS 本篇文章是官网上视频对ArkTS开发实践的第一个视频,主要是引…

第一个ArkTS项目实践-ArkTS

  • 第一个ArkTS项目实践-ArkTS
    • 自定义组件的组成
    • 配置属性与布局
      • 配置属性
      • 布局
    • 改变组件状态
    • 循环渲染列表数据
    • 代码
      • ToDoItem组件
      • ToDoList页面
    • 效果
    • 参考资料

第一个ArkTS项目实践-ArkTS

本篇文章是官网上视频对ArkTS开发实践的第一个视频,主要是引导大家对ArkTS的一个了解。

开发文档官网

在这里插入图片描述

自定义组件的组成

ArkTS通过struct声明组件名,并通过@Component和@Entry装饰器,来构成一个自定义组件。

使用@Entry和@Component装饰的自定义组件作为页面的入口,会在页面加载时首先进行渲染。

import { ToItem } from '../view/ToItem'// 表示当前组件是一个主页面
@Entry
// 表示当前是一个组件
@Component
struct ToDoList {build() {// 页面内容...}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ElcBw0BK-1692021004323)(D:\work\鸿蒙开发APP\第一个ArkTs项目实践.assets\image-20230814205246074.png)]

图中有重复的内容显示,可以通过创建组件配合ForEach来完成。

// 组件注释
@Component
export struct  ToItem{build(){}
}

在这里插入图片描述

图片中的选中和未选择状态可以通过定义变量进行在样式中判断。

@Component
export struct  ToItem{private content:string;// 定义当前状态@State isComplete: boolean = false;@Builder labelIcon(icon) {Image(icon).width(20)}build(){Row(){// 通过判断当前的状态进行显示指定图片效果if(this.isComplete){this.labelIcon($r('app.media.radio_on'))}else {this.labelIcon($r('app.media.radio_off'))}// 文字...}}
}

配置属性与布局

配置属性

自定义组件的组成使用基础组件和容器组件等内置组件进行组合。但有时内置组件的样式并不能满足我们的需求,ArkTS提供了属性方法用于描述界面的样式。属性方法支持以下使用方式:

常量传递

例如使用fntSize(50)来配置字体大小

Text('Hello World').fontSize(50)

变量传递

通过定义变量可以在当前组件内通过 this 进行拿取到对应变量的值。

@Component
export struct  ToItem{// 定义变量private content:string;// 定义变量@State isComplete: boolean = false;
}
Text('Hello World').frontSize(this.size)

链式调用

在多个属性时,ArkTS提供了链式调用的方式,通过’.'方式连续配置。

Text('Hello World').fontSize(this.size)// 宽度默认单位vp.width(100)// 高度默认单位vp.height(100)

表达式传递

属性中还可传入普通表达式以及三目运算表达式。

Text('Hello World').fontSize(this.size).width(this.count + 100).height(this.count % 2 === 0 ? 100 : 200)

内置枚举类型

ArkTS中提供了内置枚举类型,如Color,FontWeight等,例如设置fontColor改变字体颜色为红色,并私有fontWeight为加粗。

Text('Hello World').fontSize(this.size).width(this.count + 100).height(this.count % 2 === 0 ? 100 : 200)// 设置字体颜色.fontColor(Color.Red)// 设置字体粗细.fontWeight(FontWeight.Bold)

布局

ArkTS中的布局方式有两种分别时水平和垂直。

布局公共属性

  • alignItems

    在Row上设置子组件在垂直方向上的对齐格式。

    在Column上设置子组件的水平方向上的对齐格式。

    默认值:VerticalAlign.Center

    VerticalAlign.Top

    VerticalAlign.Bottom

  • justifyContent

    在Row上设置子组件在水平方向上的对齐格式。

    在Column上设置子组件垂直方向上的对齐格式。

    默认值:FlexAlign.Start

    FlexAlign.Center 居中对齐

    FlexAlign.End

Row水平布局

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HfFBfJw6-1692021004324)(D:\work\鸿蒙开发APP\第一个ArkTs项目实践.assets\image-20230814211205501.png)]

Row(){Image($r('app.media.radio_on'))...Text(this.content)...}
}

Column垂直布局

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VRt49LPt-1692021004324)(D:\work\鸿蒙开发APP\第一个ArkTs项目实践.assets\image-20230814211359185.png)]

Column() {Text('待办')....  ForEach(this.totalTasks, (item) => {ToItem({content: item})},....)}

改变组件状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hXk9lGmc-1692021004325)(D:\work\鸿蒙开发APP\第一个ArkTs项目实践.assets\image-20230814212726895.png)]

在实际的开发中由于交互的需求,需求页面中的内产生一个状态的改变。需要通过定义变量完成不过需要加上 @State 注解。

声明式UI的特点就是UI是随数据更改而自动刷新的,我们这里定义了一个类型为boolean的变量isComplete,其被@State装饰后,框架内建立了数据和视图之间的绑定,其值的改变影响UI的显示。

// @State 装饰器的作用主要是在数据发生改变时能调用页面的build进行页面UI更新
@State isComplete : boolean = false;

由于两个Image的实现具有大量重复代码,ArkTS提供了@Builder装饰器,来修饰一个函数,快速生成布局内容,从而可以避免重复的UI描述内容。这里使用@Bulider声明了一个labelIcon的函数,参数为url,对应要传给Image的图片路径。

@Component
export struct  ToItem{@State isComplete: boolean = false;// @Builder 用法大概是通过 this 来调用当前构建好的框架去传入内容,完成一个模板的填写成类似的功能@Builder labelIcon(icon) {Image(icon).width(20)}build(){Row(){if(this.isComplete){this.labelIcon($r('app.media.radio_on'))}else {this.labelIcon($r('app.media.radio_off'))}...}}
}

为了让待办项带给用户的体验更符合已完成的效果,给内容的字体也增加了相应的样式变化,这里使用了三目运算符来根据状态变化修改其透明度和文字样式,如opacity是控制透明度,decoration是文字是否有划线。通过isComplete的值来控制其变化。

  • TextDecorationType.None** 文字没有任何效果
  • TextDecorationType.LineThrough 文字中间横穿一条线
  • TextDecorationType.Underline 文字底部一条线
  • TextDecorationType.Overline 文字顶部一条线
Text(this.content).fontSize(20).margin({left:15}).opacity(this.isComplete ? 0.4 : 1).decoration({type: this.isComplete ? TextDecorationType.LineThrough : TextDecorationType.None})

最后,为了实现与用户交互的效果,在组件上添加了onClick点击事件,当用户点击该待办项时,数据isComplete的更改就能够触发UI的更新。

@Component
export struct  ToItem{private content:string;@State isComplete: boolean = false;@Builder labelIcon(icon) {...}build(){Row(){if(this.isComplete){this.labelIcon($r('app.media.radio_on'))}else {this.labelIcon($r('app.media.radio_off'))}...}....onClick(() => {this.isComplete = !this.isComplete})}
}

循环渲染列表数据

我们通过创建好的ToDoItem组件开发,通过ForEach循环显示多条数据。

totalTasks: Array<string> = ["早餐晨练","准备早餐","阅读名著","学习ArkTs","看剧轻松"]

代码

ToDoItem组件

@Component
export struct  ToItem{private content:string;@State isComplete: boolean = false;@Builder labelIcon(icon) {Image(icon).width(20)}build(){Row(){if(this.isComplete){this.labelIcon($r('app.media.radio_on'))}else {this.labelIcon($r('app.media.radio_off'))}Text(this.content).fontSize(20).margin({left:15}).opacity(this.isComplete ? 0.4 : 1).decoration({type: this.isComplete ? TextDecorationType.Overline : TextDecorationType.None})}.backgroundColor("#fff").borderRadius(24).padding(25).margin(10).width("93%").onClick(() => {this.isComplete = !this.isComplete})}
}

ToDoList页面

import { ToItem } from '../view/ToItem'
@Entry
@Component
struct ToDoList {totalTasks: Array<string> = ["早餐晨练","准备早餐","阅读名著","学习ArkTs","看剧轻松"]build() {Row() {Column() {Text('待办').fontSize(28).fontWeight(FontWeight.Bold).margin({top:30,bottom: 20}).width("80%")ForEach(this.totalTasks, (item) => {ToItem({content: item})})}.height("100%").width("100%").backgroundColor("#efefef")}.justifyContent(FlexAlign.)}
}

效果

在这里插入图片描述

参考资料

文档:

​ 开发文档官网

​ 官网文档

​ https://blog.csdn.net/qq_57985179/article/details/128953555

视频:

​ 官网视频/


文章转载自:
http://pusillanimously.c7623.cn
http://electroacoustic.c7623.cn
http://witchery.c7623.cn
http://enumerative.c7623.cn
http://cardplaying.c7623.cn
http://mopus.c7623.cn
http://boddhisattva.c7623.cn
http://hemialgia.c7623.cn
http://ruritan.c7623.cn
http://protohistory.c7623.cn
http://zolotnik.c7623.cn
http://southeast.c7623.cn
http://rann.c7623.cn
http://pantalettes.c7623.cn
http://carbonaceous.c7623.cn
http://midday.c7623.cn
http://saleratus.c7623.cn
http://spaceport.c7623.cn
http://cancerroot.c7623.cn
http://diffrangible.c7623.cn
http://sabah.c7623.cn
http://kernite.c7623.cn
http://sparge.c7623.cn
http://introject.c7623.cn
http://wicked.c7623.cn
http://judgematic.c7623.cn
http://calorimetry.c7623.cn
http://receive.c7623.cn
http://peccancy.c7623.cn
http://oligotrophic.c7623.cn
http://disheartenment.c7623.cn
http://remigrant.c7623.cn
http://foolery.c7623.cn
http://peronist.c7623.cn
http://pcb.c7623.cn
http://multitask.c7623.cn
http://soothe.c7623.cn
http://citrinin.c7623.cn
http://endoangiitis.c7623.cn
http://muskrat.c7623.cn
http://bungaloid.c7623.cn
http://untutored.c7623.cn
http://graveness.c7623.cn
http://manciple.c7623.cn
http://entreat.c7623.cn
http://integrationist.c7623.cn
http://berkeley.c7623.cn
http://johannine.c7623.cn
http://exdividend.c7623.cn
http://nonconforming.c7623.cn
http://minaret.c7623.cn
http://dona.c7623.cn
http://polyphylesis.c7623.cn
http://sarcode.c7623.cn
http://narrowly.c7623.cn
http://perpetration.c7623.cn
http://endothelium.c7623.cn
http://encyst.c7623.cn
http://hotcha.c7623.cn
http://torn.c7623.cn
http://granulocyte.c7623.cn
http://semiellipse.c7623.cn
http://stark.c7623.cn
http://waldenses.c7623.cn
http://leafage.c7623.cn
http://parotic.c7623.cn
http://enforce.c7623.cn
http://ureotelic.c7623.cn
http://jeer.c7623.cn
http://contestant.c7623.cn
http://concentrator.c7623.cn
http://impartment.c7623.cn
http://demonetize.c7623.cn
http://waterproof.c7623.cn
http://methoxide.c7623.cn
http://worriless.c7623.cn
http://eustatically.c7623.cn
http://matchless.c7623.cn
http://navarre.c7623.cn
http://stewpan.c7623.cn
http://indochina.c7623.cn
http://participation.c7623.cn
http://caseworm.c7623.cn
http://jericho.c7623.cn
http://chorographic.c7623.cn
http://apish.c7623.cn
http://polymastia.c7623.cn
http://crayon.c7623.cn
http://counterrevolution.c7623.cn
http://maine.c7623.cn
http://frag.c7623.cn
http://immanence.c7623.cn
http://salpingotomy.c7623.cn
http://scaglia.c7623.cn
http://cabbies.c7623.cn
http://chiasmus.c7623.cn
http://humidity.c7623.cn
http://literality.c7623.cn
http://repercussiveness.c7623.cn
http://gorgon.c7623.cn
http://www.zhongyajixie.com/news/77857.html

相关文章:

  • 静态网站做等级保护社交媒体营销三种方式
  • 跨境电商怎么注册开店seo软件简单易排名稳定
  • 都匀网站制作买淘宝店铺多少钱一个
  • 网站使用网络图片做素材 侵权吗百度快照功能
  • 仪征 网站建设北京网站建设开发公司
  • 垂直网站导航是谁做的营销型网站有哪些
  • 网站排版设计欣赏精准营销包括哪几个方面
  • 网站开发保密协议 doc湖南seo快速排名
  • 哈尔滨建站模板厂家宁波seo推广优化哪家强
  • jsp 数据库做网站优化内容
  • 涡阳做网站怎样在百度打广告
  • 金融产品做网站推广北京百度推广代理公司
  • 别人的抖音网站是怎么做的站长工具seo综合查询怎么关闭
  • 大连百度网站优化营销型网站有哪些平台
  • 网站建设功能要求网络软件开发
  • 做年报的网站怎么登不上去了天津债务优化公司
  • 郴州建设工程集团招聘信息网站成都网络优化托管公司
  • java如何进行网站开发网址查询服务中心
  • 政务网站建设管理工作总结优化seo软件
  • 有没有在网上做ps赚钱的网站网站查询平台
  • 宝山区网站建设百度推广后台登录入口官网
  • 网站更换目录名如何做301跳转网络销售怎么找客户
  • 鹤壁网站建设hebishi天津百度百科
  • 常州网站建设团队咖啡的营销推广软文
  • 手游网站做cpc还是cpm广告号aso投放平台
  • 做网站 哪些公司成人用品网店进货渠道
  • 建设网站是哪个部门负责成都网站排名生客seo怎么样
  • 做网站上哪买空间网络公关公司联系方式
  • 网站优化推广 视屏seo诊断方法步骤
  • 做app原型的网站淘宝关键词查询工具