当前位置: 首页 > 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.zqtcl.cn/news/895707/

相关文章:

  • 怎样让网站响应式推广策划案
  • 网站开发 面试 适当吹牛网站文件命名规则
  • 河北省建设中心网站图片分享网站源码
  • 工信部网站备案修改个人求职网站怎么做
  • 关于建设公司网站的申请宁波网站制作出售
  • 织梦电影网站免费模板网站域名asia是
  • 顺德中小企业网站建设宁乡市建设局网站
  • 静态网页模板 网站模板兰州做网站价格
  • 吕梁推广型网站建设godaddy托管 wordpress
  • 什么网站百度收录好珠海哪里做网站的
  • 如何介绍网站模板金融网站模版
  • 网站内链怎么优化e时代网站制作
  • 记事本做网站素材代码国内十大4a广告公司
  • 一米八效果图网站商业网站平台
  • 做搜狗手机网站优化产品推广计划怎么写
  • 网站链接优化怎么做ftp服务器
  • 什么网站可以接单做海报网站信息员队伍建设方案
  • 淘宝联盟 网站怎么做网站运营推广方案设计
  • 网站建设数据库类型百度seo现状
  • 德州网站优化公司平面设计公司企业logo设计
  • 山东平台网站建设价位网站广告文案
  • 可以做哪方面的网站万网董事长是谁
  • 京东网站开发费用程序员找工作的网站
  • 怎么做网站首页psdwordpress 注册验证
  • 商丘做网站的公司有哪些郑州网站公司排名
  • 竞价网站与竞价网站之间做友情链接企业邮箱查询
  • 国外jquery网站wordpress 下一页 模板
  • 安卓手机做网站云南建设厅网站职称评定
  • 国外域名注册商网站邮箱登陆登录入口
  • 男女做那个的网站是什么深圳市8号公告