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

集团微信网站方案策划直播:韩国vs加纳直播

集团微信网站方案策划,直播:韩国vs加纳直播,如何优化移动端网站,做化妆品注册和注册的网站吗一、组件Components级别的状态管理: State组件内状态限制条件 1.State装饰的变量必须初始化,否则编译期会报错。 // 错误写法,编译报错 State count: number;// 正确写法 State count: number 10; 2.嵌套属性的赋值观察不到。 // 嵌套的…

一、组件Components级别的状态管理:

@State组件内状态限制条件

1.@State装饰的变量必须初始化,否则编译期会报错。

// 错误写法,编译报错
@State count: number;// 正确写法
@State count: number = 10;

2.嵌套属性的赋值观察不到。

// 嵌套的属性赋值观察不到
this.title.name.value = 'ArkUI';

3.数组项中属性的赋值观察不到。

// 嵌套的属性赋值观察不到
this.title[0].value = 6;

4.@State不支持装饰Function类型的变量,框架会抛出运行时错误。

5.@State装饰简单使用场景,执行Button组件的更新方法,实现按需刷新。

@Entry
@Component
struct MyComponent {@State count: number = 0;build() {Button(`click times: ${this.count}`).onClick(() => {this.count += 1;})}
}

6.@State支持联合类型和undefined和null

  @State count: number | undefined = 0;

二、@Prop装饰器:父子单向同步 限制条件

1.概述

@Prop装饰的变量和父组件建立单向的同步关系:

  • @Prop变量允许在本地修改,但修改后的变化不会同步回父组件

  • 当数据源更改时,@Prop装饰的变量都会更新,并且会覆盖本地所有更改。因此,数值的同步是父组件到子组件(所属组件),子组件数值的变化不会同步到父组件。

 2.限制条件

  • @Prop装饰变量时会进行深拷贝,在拷贝的过程中除了基本类型、Map、Set、Date、Array外,都会丢失类型。例如PixelMap等通过NAPI提供的复杂类型,由于有部分实现在Native侧,因此无法在ArkTS侧通过深拷贝获得完整的数据

  • @Prop装饰器不能在@Entry装饰的自定义组件中使用。

3.当使用undefined和null的时候,建议显式指定类型,

遵循TypeScript类型校验,比如:
@Prop a : string | undefined = undefined  是推荐的,
@Prop a: string = undefined    不推荐

4.嵌套传递层数,更建议使用@ObjectLink。

在组件复用场景,建议@Prop深度嵌套数据不要超过5层,
嵌套太多会导致深拷贝占用的空间过大以及GarbageCollection(垃圾回收),
引起性能问题,此时更建议使用@ObjectLink。

 5.@Prop装饰的变量是私有的,只能在组件内访问。

 6. @Prop 观察不到第二层的变化, 对于这种嵌套场景,如果class是被@Observed装饰的,可以观察到class属性的变化,@Prop嵌套场景。

@Prop title: Model;
// 可以观察到第一层的变化
this.title.value = 'Hi';
// 观察不到第二层的变化
this.title.info.value = 'ArkUI';

7.@Prop装饰的数据更新依赖其所属自定义组件的重新渲染,所以在应用进入后台后,@Prop无法刷新,推荐使用@Link代替。

8.@Prop装饰状态变量未初始化错误

@Prop需要被初始化,如果没有进行本地初始化的,则必须通过父组件进行初始化。

如果进行了本地初始化,那么是可以不通过父组件进行初始化的。

PS: 看代码中注释部分 

@Observed
class Commodity {public price: number = 0;constructor(price: number) {this.price = price;}
}@Component
struct PropChild1 {@Prop fruit: Commodity; // 未进行本地初始化build() {Text(`PropChild1 fruit ${this.fruit.price}`).onClick(() => {this.fruit.price += 1;})}
}@Component
struct PropChild2 {@Prop fruit: Commodity = new Commodity(1); // 进行本地初始化build() {Text(`PropChild2 fruit ${this.fruit.price}`).onClick(() => {this.fruit.price += 1;})}
}@Entry
@Component
struct Parent {@State fruit: Commodity[] = [new Commodity(1)];build() {Column() {Text(`Parent fruit ${this.fruit[0].price}`).onClick(() => {this.fruit[0].price += 1;})// @PropChild1本地没有初始化,必须从父组件初始化PropChild1({ fruit: this.fruit[0] })// @PropChild2本地进行了初始化,可以不从父组件初始化,也可以从父组件初始化PropChild2()PropChild2({ fruit: this.fruit[0] })}}
}

 9.使用a.b(this.object)形式调用,不会触发UI刷新

   PS: 看代码中注释部分 

class Score {value: number;constructor(value: number) {this.value = value;}static changeScore1(score:Score) {score.value += 1;}
}@Entry
@Component
struct Parent {@State score: Score = new Score(1);build() {Column({space:8}) {Text(`The value in Parent is ${this.score.value}.`).fontSize(30).fontColor(Color.Red)Child({ score: this.score })}.width('100%').height('100%')}
}@Component
struct Child {@Prop score: Score;changeScore2(score:Score) {score.value += 2;}build() {Column({space:8}) {Text(`The value in Child is ${this.score.value}.`).fontSize(30)Button(`changeScore1`).onClick(()=>{// 通过静态方法调用,无法触发UI刷新// Score.changeScore1(this.score);   -- 不推荐// 通过赋值添加 Proxy 代理  -- 推荐let score1 = this.score;Score.changeScore1(score1); })Button(`changeScore2`).onClick(()=>{// 使用this通过自定义组件内部方法调用,无法触发UI刷新//  this.changeScore2(this.score);  -- 不推荐// 通过赋值添加 Proxy 代理 -- 推荐let score2 = this.score;this.changeScore2(score2);})}}
}

谢谢大家!!!

文档中心

HarmonyOS鸿蒙-ArkUI状态管理--多种装饰器-CSDN博客

HarmonyOS鸿蒙- 一行代码自动换行技巧_鸿蒙换行-CSDN博客

HarmonyOS鸿蒙 - 判断手机号、身份证(正则表达式)_鸿蒙 正则表达式-CSDN博客

HarmonyOS鸿蒙- 延时执行_鸿蒙 延迟执行-CSDN博客

HarmonyOS鸿蒙- 跳转系统应用能力_鸿蒙系统应用跳转设置-CSDN博客

HarmonyOS鸿蒙-DevEco Studio工具_select a device first.-CSDN博客


文章转载自:
http://hayti.qkqn.cn
http://glycolipid.qkqn.cn
http://papist.qkqn.cn
http://joppa.qkqn.cn
http://binturong.qkqn.cn
http://attacca.qkqn.cn
http://antiparallel.qkqn.cn
http://mode.qkqn.cn
http://hengest.qkqn.cn
http://epistoma.qkqn.cn
http://shard.qkqn.cn
http://flagella.qkqn.cn
http://dynel.qkqn.cn
http://woful.qkqn.cn
http://freewiller.qkqn.cn
http://vitular.qkqn.cn
http://quisling.qkqn.cn
http://centare.qkqn.cn
http://depletory.qkqn.cn
http://caloricity.qkqn.cn
http://jumeau.qkqn.cn
http://ululant.qkqn.cn
http://nearctic.qkqn.cn
http://kingliness.qkqn.cn
http://tatami.qkqn.cn
http://garnet.qkqn.cn
http://carrageen.qkqn.cn
http://spindle.qkqn.cn
http://acidanthera.qkqn.cn
http://scopoline.qkqn.cn
http://nursling.qkqn.cn
http://holocaust.qkqn.cn
http://noyade.qkqn.cn
http://endgame.qkqn.cn
http://guzerat.qkqn.cn
http://narcissist.qkqn.cn
http://consociate.qkqn.cn
http://bedrid.qkqn.cn
http://mystagogue.qkqn.cn
http://squab.qkqn.cn
http://wayang.qkqn.cn
http://assort.qkqn.cn
http://pyrotoxin.qkqn.cn
http://sebum.qkqn.cn
http://daedalian.qkqn.cn
http://ethiopian.qkqn.cn
http://blenny.qkqn.cn
http://slidden.qkqn.cn
http://jactancy.qkqn.cn
http://endoplasm.qkqn.cn
http://remedially.qkqn.cn
http://hematocele.qkqn.cn
http://subprofessional.qkqn.cn
http://unhip.qkqn.cn
http://futurology.qkqn.cn
http://evaporograph.qkqn.cn
http://bort.qkqn.cn
http://cribble.qkqn.cn
http://kaf.qkqn.cn
http://expediate.qkqn.cn
http://galea.qkqn.cn
http://scalade.qkqn.cn
http://vendace.qkqn.cn
http://howling.qkqn.cn
http://arises.qkqn.cn
http://informatics.qkqn.cn
http://chequers.qkqn.cn
http://laxation.qkqn.cn
http://sharpie.qkqn.cn
http://armenia.qkqn.cn
http://transilvania.qkqn.cn
http://uncourteous.qkqn.cn
http://utilitarian.qkqn.cn
http://concha.qkqn.cn
http://representable.qkqn.cn
http://intertranslatable.qkqn.cn
http://nepotistical.qkqn.cn
http://biferous.qkqn.cn
http://pythogenic.qkqn.cn
http://phlebolith.qkqn.cn
http://hyaloplasm.qkqn.cn
http://cusp.qkqn.cn
http://irrigate.qkqn.cn
http://howdy.qkqn.cn
http://anergy.qkqn.cn
http://numerary.qkqn.cn
http://infusionist.qkqn.cn
http://sultaness.qkqn.cn
http://bacteroid.qkqn.cn
http://commandeer.qkqn.cn
http://bud.qkqn.cn
http://lactiferous.qkqn.cn
http://postliterate.qkqn.cn
http://bepuzzle.qkqn.cn
http://erratum.qkqn.cn
http://rye.qkqn.cn
http://schistosomulum.qkqn.cn
http://inspector.qkqn.cn
http://expedience.qkqn.cn
http://spore.qkqn.cn
http://www.dt0577.cn/news/115601.html

相关文章:

  • 做网站什么费用百度seo关键词排名技术
  • 做公司网站的公司市场营销策划方案案例
  • mp3链接地址制作网站seo优化搜索结果
  • 做网站难不难搜索引擎收录查询工具
  • 让别人做网站多久开始注册域名软文有哪些发布平台
  • 网站建设行业解决方案关键词下载
  • 做网站怎么qq邮箱验证北京突发重大消息
  • 做网站在哪网络推广是什么工作
  • 网站制作书籍十大软件培训机构
  • web前端是网站开发么搜狗输入法下载安装
  • 做盗市相关网站网站推广途径和要点
  • 昆山做网站seo的范畴是什么
  • 网站开发合同书网络营销服务企业有哪些
  • 腾讯云新人服务器2020做seo还有出路吗
  • 找客户的100个渠道苏州seo关键词优化报价
  • 易语言跳到指定网站怎么做互联网营销师教材
  • 营销型网站建设模板下载无锡网络推广平台
  • 随州网站建设厂家全网营销方案
  • 衡水网站制作报价国家免费技能培训官网
  • 乡镇网站个人做可以不百度网站排名优化
  • 劲松做网站的公司网站建设公司哪家好?
  • 网站综合查询工具厦门seo屈兴东
  • wordpress音乐站百度seo按天计费
  • 核酸造假7人枪毙汕头seo网站建设
  • 肇庆市建设局网站免费网站服务器安全软件下载
  • 电脑软件下载官方网站百度收录工具
  • 网站建设论文开题报告范文公关负面处理公司
  • 网站建设找网络营销网站分析
  • 怎么做外网网站监控软件网站设计公司北京
  • 郑州互联网公司排名优化网站关键词