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

龙华网站建设深圳信科电商网站如何避免客户信息泄露

龙华网站建设深圳信科,电商网站如何避免客户信息泄露,兰州网站关键词优化,模板企业快速建站文章大纲 引言一、组件内状态装饰器State1、初始化2、使用规则3、变量的传递/访问规则说明4、支持的观察变化的场景5、State 变量的值初始化和更新机制6、State支持联合类型实例 引言 前一篇文章OpenHarmony 入门——ArkUI 自定义组件之间的状态装饰器小结(一&…

文章大纲

  • 引言
  • 一、组件内状态装饰器@State
    • 1、初始化
    • 2、使用规则
    • 3、变量的传递/访问规则说明
    • 4、支持的观察变化的场景
    • 5、@State 变量的值初始化和更新机制
    • 6、State支持联合类型实例

引言

前一篇文章OpenHarmony 入门——ArkUI 自定义组件之间的状态装饰器小结(一)简单复述了下,这一篇就好好学习下装饰器的语法和用法。

一、组件内状态装饰器@State

@State装饰的变量即状态变量,一旦变量拥有了状态属性,就可以触发其直接绑定UI组件的刷新。当状态改变时,UI会发生对应的渲染改变。**@State是最基础的,使变量拥有状态属性的装饰器,它也是大部分状态变量的数据源。**换言之,任一组件内部自己去通过数据驱动自身UI更新的,只需要把常规变量加上@State修饰即可。

1、初始化

@State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的且只能从组件内部访问,在声明时必须指定其类型和本地初始化,初始化也可选择使用命名参数机制从父组件完成初始化。@State装饰的变量生命周期与其所属自定义组件的生命周期相同。

2、使用规则

在这里插入图片描述

3、变量的传递/访问规则说明

在这里插入图片描述

4、支持的观察变化的场景

并非状态变量的所有更改都会引起UI的刷新,只有可以被框架观察到的修改才会引起UI刷新。以下的修改可被观察到以及观察到变化后触发ArkUI框架刷新UI。

  • 数据类型为boolean、string、number被修饰时可以观察到数值的变化。
  • 数据类型为class或者Object时,可以观察到自身的赋值的变化及其属性赋值的变化,即Object.keys(observedObject)返回的所有属性。
  class ClassA {public value: string;constructor(value: string) {this.value = value;}}class Model {public value: string;public name: ClassA;constructor(value: string, a: ClassA) {this.value = value;this.name = a;}}// State装饰的类型是Model
@State title: Model = new Model('Hello', new ClassA('World'));
// class类型赋值可被观察到
this.title = new Model('Hi', new ClassA('ArkUI'));
// class属性的赋值 可被观察到
this.title.value = 'Hi';// XXXXXX嵌套的属性赋值观察不到XXXXXXX
this.title.name.value = 'ArkUI';
  • 数据类型为array时,可以观察到数组本身的赋值和添加、删除、更新数组的变化
class Model {public value: number;constructor(value: number) {this.value = value;}
}
// 数组类型
@State title: Model[] = [new Model(11), new Model(1)];
// 数组赋值
this.title = [new Model(2)];
// 数组项赋值
this.title[0] = new Model(2);
// 数组项更改
this.title.pop();
// 数组项更改
this.title.push(new Model(12));
// XXXXXXXXX嵌套的属性赋值观察不到
this.title[0].value = 6;
  • 当装饰的变量是Map时,可以观察到Map整体的赋值,同时可通过调用Map的接口set, clear, delete 更新Map的值。详见装饰Map类型变量。

  • 当装饰的变量是Set时,可以观察到Set整体的赋值,同时可通过调用Set的接口add, clear, delete 更新Set的值。详见装饰Set类型变量。

  • 当装饰的对象是Date时,可以观察到Date整体的赋值,同时可通过调用Date的接口setFullYear, setMonth, setDate, setHours, setMinutes, setSeconds, setMilliseconds, setTime, setUTCFullYear, setUTCMonth, setUTCDate, setUTCHours, setUTCMinutes, setUTCSeconds, setUTCMilliseconds 更新Date的属性。

5、@State 变量的值初始化和更新机制

  • 当状态变量被改变时,查询依赖该状态变量的组件;
  • 执行依赖该状态变量的组件的更新方法,组件更新渲染;
  • 和该状态变量不相关的组件或者UI描述不会发生重新渲染,从而实现页面渲染的按需更新。

6、State支持联合类型实例

@State支持联合类型和undefined和null,在下面的示例中,count类型为number | undefined,点击Button改变count的属性或者类型,视图会随之刷新。

@Entry
@Component
struct EntryComponent {build() {Column() {MyComponent()}}
}@Component
struct MyComponent {@State count: number | undefined = 0;build() {Column() {Text(`count(${this.count})`)Button('change').onClick(() => {this.count = undefined;})}}
}

更多例子请参见后续文章。

http://www.zhongyajixie.com/news/5569.html

相关文章:

  • 苏州园区做网站合肥网站优化排名推广
  • 做网站付款会有凭证吗内江seo
  • wordpress 去掉顶部上海关键词排名优化怎样
  • 建设工程网站资质人员查询网络营销策划书怎么写
  • 江苏齐力建设集团网站今天中国新闻
  • 专门做影评的网站搜索引擎竞价推广的优势
  • 如何在youtube找人做视频网站站长工具查询官网
  • 信阳做网站 汉狮网络seo公司后付费
  • 用asp做网站有哪些功能关键词百度云
  • 企业运营能力指标江西省seo
  • 小公司做网站推广好不好杭州seo建站
  • 贺州网站建设沈阳黄页88企业名录
  • 黄页网站推广app天津seo外包
  • 在百度做推广送网站好吗品牌营销策略有哪些方法
  • 网站建设售后服务内容如何能查到百度搜索排名
  • 自己本地可以做网站服务器公众号推广
  • 做直播网站有哪些温州seo网站建设
  • 滨州公司做网站seo竞争对手分析
  • 专业做网站团队饥饿营销的十大案例
  • 胜芳网站建设qiansi杭州网站搜索排名
  • app网站开发重庆网游推广员
  • 广州教育学会网站建设百度权重排名
  • wordpress后台运行很慢成都seo优化外包公司
  • 响应式网页网站设计外贸接单平台哪个最好
  • 网站突然显示 建设中营销最好的方法
  • 私人pk赛车网站怎么做化学sem是什么意思
  • 怎么用ftp工具上传网站源码女生学市场营销好吗
  • 网站建设的报价单有哪些网络推广平台
  • 做php网站教程视频教程网络推广培训班
  • 辽宁省建设厅网站官网网站怎么弄