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

免费设计商标的网站免费网站收录网站推广

免费设计商标的网站,免费网站收录网站推广,青岛网站设计公司排名,网站新闻页面设计声明式UI语法 基本概念声明式UI描述创建组件无参数有参数 配置属性配置事件 配置子组件 基本概念 装饰器:用于装饰类、结构、方法及变量,并赋予其特殊的含义。 例如: Entry 有该装饰器的自定义组件,可以在UIAbility中使用&#xf…

声明式UI语法

  • 基本概念
  • 声明式UI描述
    • 创建组件
      • 无参数
      • 有参数
    • 配置属性
      • 配置事件
    • 配置子组件

基本概念

  • 装饰器:用于装饰类、结构、方法及变量,并赋予其特殊的含义。

    例如:
    @Entry 有该装饰器的自定义组件,可以在UIAbility中使用,作为页面入口。该装饰器配合@Component装饰器使用
    @Component 自定义组件
    @State 表示组件中的状态变量,状态变化会出发UI刷新。
    @L

  • UI描述:以声明式的方式来描述UI的结构,在组件的build方法中。

  • 自定义组件:可复用的UI单元,可组合其他组件。

  • 系统组件:ArkUI框架中默认内置的基础和容器组件。例如:Column、Row、Text、Image、Button等。

  • 属性方法:ArkTs中,使用链式调用的方式来配置组件属性。

  • 事件方法:事件响应逻辑,也是使用链式调用的方式,设置如onclick方法等,在方法内部进行实现。

基础的组件一般就是由上述部分组成,如下图:
在这里插入图片描述
当然,也有一些其他的语法范式方便我们进行封装复用,如:

除此之外,ArkTS扩展了多种语法范式来使开发更加便捷:

  • @Builder/@BuilderParam:特殊的封装UI描述的方法,细粒度的封装和复用UI描述。

  • @Extend/@Styles:扩展内置组件和封装属性样式,更灵活地组合内置组件。

  • stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同样式。

这些后续会讲到。

声明式UI描述

创建组件

在ArkTs的基础语法中,我们讲到类,实例化一个类,需要使用new关键字进行。而在UI组件中,创建组件是不需要使用new关键字的。

无参数

如果组件的接口定义没有包含必选的构造参数,则组件后面的()中可以不配置任何内容。

例如Button() Text()等包含可选参数的组件,Driver()等没有构造参数的组件。

有参数

如果组件的接口定义中包含了必选构造参数,则在组件后的()中需要配置相应的参数。
例如Image()组件,必选参数为src。

变量和表达式也可以用作参数赋值。

配置属性

组件的属性方法以.链式调用的方式配置样式和其他属性。

	Text(this.message).id('HelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }})

配置事件

使用箭头函数配置组件的事件方法

	Button() {Text('跳转').fontSize(30).fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({ top: '0.00vp', right: '0.00vp', bottom: '150.00vp', left: '0.00vp' }).backgroundColor('#ff0000').width('50%').height('10%').alignRules({center: { anchor: '__container__', align: VerticalAlign.Bottom },middle: { anchor: '__container__', align: HorizontalAlign.Center }}).onClick(() => {console.info('click second button')router.pushUrl({ url: 'pages/Second' }).then(() => {console.info('jump success')}).catch((err: BusinessError) => {console.error(`jump failed,errCode:${err.code},errMessage:${err.message}`)})})}.height('100%').width('100%')

如需使用组件中的成员函数配置组件的事件方法,需要使用bind this。

myClickHandler(): void {this.counter += 2;
}
...
Button('add counter').onClick(this.myClickHandler.bind(this))

ArkTs语法不推荐使用成员函数配合bind(this)的方式去配置组件的事件方法

使用声明的箭头函数,可以直接调用,不需要使用bind(this)

fn = () => {console.info(`counter: ${this.counter}`)this.counter++
}
...
Button('add counter').onClick(this.fn)

配置子组件

如果组件是容器组件,则支持子组件配置,需要在组件声明后,紧随的闭包中添加子组件的描述。如Column Row List等组件。

	RelativeContainer() {Text(this.message).id('SecondHelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }})Button() {Text('back').fontSize('30').fontWeight(FontWeight.Bold)}.type(ButtonType.Capsule).margin({bottom: 50}).alignRules({center: { anchor: '__container__', align: VerticalAlign.Bottom },middle: { anchor: '__container__', align: HorizontalAlign.Center }}).width('50%').height('10%').backgroundColor('#ff0000').onClick(() => {try {router.back()} catch (err) {let code = (err as BusinessError).codelet message = (err as BusinessError).messageconsole.info(`jump error:${code},${message}`)}})}.height('100%').width('100%')
http://www.dinnco.com/news/40163.html

相关文章:

  • 网站建设有证书吗百度指数的网址
  • 如何做网站的内链和外链搜索引擎营销题库和答案
  • 乳胶漫画+wordpress深圳龙岗区优化防控措施
  • 网站外部链接如何建设石家庄网站建设公司
  • 常州网站制作公司排名店铺推广方案怎么写
  • 网站注册页面怎么做数据验证哪个app可以找培训班
  • 凡科网站怎么修改昨天做的网站合肥瑶海区
  • 如何做网站嵌入腾讯地图做外贸网站哪家公司好
  • 济宁 网站建设做网站需要多少钱 都包括什么
  • 佛山多语网站制作百度链接提交入口
  • 做网站后端如何接业务设计网站大全
  • 企业咨询公司是做什么的杭州专业seo
  • 网络营销推广的主要特点seo搜索优化专员
  • 中国林业工程建设协会官方网站优秀网站网页设计分析
  • 广州手机网站建设哪家好网站提交入口百度
  • 日本真人做黄视频网站最新国际新闻
  • 找合伙做网站的福州seo网络推广
  • 珠海网站建设联系方式搜索引擎优化的定义
  • 做时时彩网站费用网络推广和seo
  • 网站主页设计布局营销模式和营销策略
  • 许昌做网站汉狮网络seo专业培训班
  • 广东省建设厅网站首页企业网站注册
  • 网站建设验收内容网站在线客服系统免费
  • 赣州网站建设机构营销推广方案设计
  • wordpress文章自动标签seo网络排名优化方法
  • 网站 建设 场地 资金武汉大学人民医院精神科
  • 宽带哪家好seo入门讲解
  • 专业网站建设制作价格友情链接管理系统
  • 江苏省住房和城乡建设厅 官方网站网销是什么工作好做吗
  • 广州网站制作(信科网络)石景山区百科seo