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

医院做网站运维找个免费的网站

医院做网站运维,找个免费的网站,临海网站建设公司,wordpress汉化软件其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理#xff0c;ArkTS还提供了Watch和$$来为开发者提供更多功能#xff1a; Watch用于监听状态变量的变化。$$运算符#xff1a;给内置组件提供TS变量的引用#xff0c;使得TS变量和内置组件的内部状态保持同步…其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理ArkTS还提供了Watch和$$来为开发者提供更多功能 Watch用于监听状态变量的变化。$$运算符给内置组件提供TS变量的引用使得TS变量和内置组件的内部状态保持同步。 Watch装饰器状态变量更改通知 Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变可以使用Watch为状态变量设置回调函数。 概述 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;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) {Text(Price: ${item.price.toFixed(2)} €)},item 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组件也重新渲染重新渲染是异步发生的。 $$语法内置组件双向同步 $$运算符为系统内置组件提供TS变量的引用使得TS变量和系统内置组件的内部状态保持同步。 内部状态具体指什么取决于组件。例如bindPopup属性方法的show参数。 使用规则 当前$$支持基础类型变量以及State、Link和Prop装饰的变量。当前$$仅支持bindPopup属性方法的show参数Radio 组件的checked属性Refresh 组件的refreshing参数。$$绑定的变量变化时会触发UI的同步刷新。 使用示例 以bindPopup属性方法的show参数为例 // xxx.ets Entry Component struct bindPopupPage {State customPopup: boolean false;build() {Column() {Button(Popup).margin(20).onClick(() {this.customPopup !this.customPopup}).bindPopup($$this.customPopup, {message: showPopup})}} }
http://www.hkea.cn/news/14449686/

相关文章:

  • 听歌网站源码wordpress dux2.0
  • 青岛谷歌网站建设长春网站建设找新生科技
  • 个人博客模板网站wordpress应用展示
  • 自适应网站搭建wordpress 手册主题
  • 做外贸通常用哪些网站网站建设Skype打不开
  • 百度官方网站网址湖北专业网站建设检修
  • 深圳网站建设三把火如何创作自己的平台
  • 北京的电商平台网站jsp网站开发心得
  • 学做网站多久能学会汽车网站排行榜前十名
  • 杭州网站建设公司平台设计素材的网站
  • 单位申请免费网站湖南企业网站制作公司
  • 湖州网站开发公司asp c 网站开发
  • 网站子页设计wordpress免费商城
  • 网站服务器放置地查询南充 网站建设
  • 开网站做什么产品网络推广怎样做
  • 做网站要会写代码吗好姑娘免费高清视频
  • 怎么做夜场网站网上书城网站开发的目的与意
  • 建设网站答辩情况WordPress上传文件格式
  • wordpress 用户站点济南制作网站有哪些
  • 小米手表网站怎样建立网站 优帮云
  • 一个电商网站建设需要哪些技术手机网页视频下载工具
  • 公众号做微网站吗客户要做网站建设话术
  • 网站推广智选刺盾云下拉青岛seo百科
  • 房产网站建设整体架构产品怎么做市场推广
  • 龙岗网站建设公司网页设计代码大全下载
  • 网页设计和网站开发的区别网址大全123上网导航
  • 合肥网站的建设做网站要什么资料
  • 网站响应速度验收佛山网站建设公司有哪些
  • 影业的网站怎么做注册公司名字查询系统
  • 邯郸国外网站建设费用网站开发公司人员配置