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

烟台市未成年思想道德建设网站企业网站排行榜

烟台市未成年思想道德建设网站,企业网站排行榜,wordpress远程数据库,官方重大项目建设库网站Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变#xff0c;可以使用Watch为状态变量设置回调函数。 说明#xff1a; 从API version 9开始#xff0c;该装饰器支持在ArkTS卡片中使用。 概述 Watch用于监听状态变量的变化#xff0c;当状态变量变… Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变可以使用Watch为状态变量设置回调函数。 说明 从API version 9开始该装饰器支持在ArkTS卡片中使用。 概述 Watch用于监听状态变量的变化当状态变量变化时Watch的回调方法将被调用。Watch在ArkUI框架内部判断数值有无更新使用的是严格相等遵循严格相等规范。当在严格相等为false的情况下就会触发Watch的回调。 装饰器说明 Watch补充变量装饰器 说明 装饰器参数 必填。常量字符串字符串需要有引号。是(string)  void自定义成员函数的方法的引用。 可装饰的自定义组件变量 可监听所有装饰器装饰的状态变量。不允许监听常规变量。 装饰器的顺序 建议State、Prop、Link等装饰器在Watch装饰器之前。 语法说明 类型 说明 (changedPropertyName? : string)  void 该函数是自定义组件的成员函数changedPropertyName是被watch的属性名。 在多个状态变量绑定同一个Watch的回调方法的时候可以通过changedPropertyName进行不同的逻辑处理 将属性名作为字符串输入参数不返回任何内容。 观察变化和行为表现 当观察到状态变量的变化包括双向绑定的AppStorage和LocalStorage中对应的key发生的变化的时候对应的Watch的回调方法将被触发Watch方法在自定义组件的属性变更之后同步执行如果在Watch的方法里改变了其他的状态变量也会引起状态变更和Watch的执行在第一次初始化的时候Watch装饰的方法不会被调用即认为初始化不是状态变量的改变。只有在后续状态改变时才会调用Watch回调方法。 限制条件 建议开发者避免无限循环。循环可能是因为在Watch的回调方法里直接或者间接地修改了同一个状态变量引起的。为了避免循环的产生建议不要在Watch的回调方法里修改当前装饰的状态变量开发者应关注性能属性值更新函数会延迟组件的重新渲染具体请见上面的行为表现因此回调函数应仅执行快速运算不建议在Watch函数中调用async await因为Watch设计的用途是为了快速的计算异步行为可能会导致重新渲染速度的性能问题。 使用场景 Watch和自定义组件更新 以下示例展示组件更新和Watch的处理步骤。count在CountModifier中由State装饰在TotalView中由Prop装饰。 Component struct TotalView {Prop Watch(onCountUpdated) count: number 0;State total: number 0;// Watch cbonCountUpdated(propName: string): void {this.total  this.count;}build() {Text(Total: ${this.total})} }Entry Component struct CountModifier {State count: number 0;build() {Column() {Button(add to basket).onClick(() {this.count})TotalView({ count: this.count })}} }处理步骤 CountModifier自定义组件的Button.onClick点击事件自增count。由于State count变量更改子组件TotalView中的Prop被更新其Watch(onCountUpdated)方法被调用更新了子组件TotalView 中的total变量。子组件TotalView中的Text重新渲染。 Watch与Link组合使用 以下示例说明了如何在子组件中观察Link变量。 class PurchaseItem {static NextId: number 0;public id: number;public price: number;constructor(price: number) {this.id  PurchaseItem.NextId;this.price  price;} }Component struct BasketViewer {Link Watch(onBasketUpdated) shopBasket: PurchaseItem[];State totalPurchase: number 0;updateTotal(): number {let total  this.shopBasket.reduce((sum, i)  sum  i.price, 0);// 超过100欧元可享受折扣if (total  100) {total  0.9 * total;}return total;}// Watch 回调onBasketUpdated(propName: string): void {this.totalPurchase  this.updateTotal();}build() {Column() {ForEach(this.shopBasket,(item:PurchaseItem) {Text(Price: ${item.price.toFixed(2)} €)},(item:PurchaseItem)  item.id.toString())Text(Total: ${this.totalPurchase.toFixed(2)} €)}} }Entry Component struct BasketModifier {State shopBasket: PurchaseItem[] [];build() {Column() {Button(Add to basket).onClick(() {this.shopBasket.push(new PurchaseItem(Math.round(100 * Math.random())))})BasketViewer({ shopBasket: $shopBasket })}} }处理步骤如下 BasketModifier组件的Button.onClick向BasketModifier shopBasket中添加条目Link装饰的BasketViewer shopBasket值发生变化状态管理框架调用Watch函数BasketViewer onBasketUpdated 更新BasketViewer TotalPurchase的值Link shopBasket的改变新增了数组项ForEach组件会执行item Builder渲染构建新的Item项State totalPurchase改变对应的Text组件也重新渲染重新渲染是异步发生的。
http://www.pierceye.com/news/895707/

相关文章:

  • 免费自助建站郑州官网seo费用
  • 称心的常州网站建设wordpress怎么用两个主题
  • 建设银行北京分行网站做视频网站用什么服务器配置
  • 网站备案流程实名认证医疗网站建设资讯
  • 一个做问卷调查的网站好wordpress七比2
  • 西双版纳网站制作公司临沂企业网站建站模板
  • 培训做网站国内适合个人做外贸的网站有哪些
  • 我想卖自己做的鞋子 上哪个网站好中信银行网站怎么做的怎么烂
  • 在线网站建设工程标准godaddy 上传网站
  • 营销型网站方案ppt模板手机建站平台微点
  • 网站信息备案管理系统电商网页精品欣赏网站
  • 推广公司让实名认证怎么办系统优化设置
  • 公司网站 正式上线如何创建一个软件
  • app备案查询网站上海缪斯设计公司地址
  • 旅游小网站怎样做精不做全组建网站 多少钱
  • 天津城乡住房建设厅网站网站建设观点
  • 电子商务网站建设的认识tk网站免费
  • html网页设计网站开发报告企业做的网站费入什么科目
  • 网站建设辶金手指排名十三郑州经济技术开发区教师招聘公告
  • 企业网站建设课程体会西安网站制作定制
  • 网站主题服务公司管理软件免费版
  • 网站建设主要职责六安网站建设
  • wordpress电影站主题一般做兼职在哪个网站
  • 可信网站友链怎么做网站建设行业标准
  • 济南营销网站制作公司哪家好口碑好的家装前十强
  • 公司网站开发费账务处理做图表的网站推荐
  • 网站如何做好用户体验wordpress 文章类
  • 做采集网站的方法世界四大广告公司
  • 做断桥铝窗户的网站宿州推广公司
  • 网站优化制作东莞房价一览表