HarmonyOS Watch状态变量监听

今天 我们要将 @Watch装饰器
状态变量更改通知

那么 关键点 状态变量 就是 更改后页面会响应式更新的响应式数据

我们可以这样写

@Entry
@Component
struct Index {

  @State @Watch("setName") name:string = "小猫猫";

  setName() {
    console.log("变量改变");
  }

  build() {
    Row() {
      Column() {
        Text(this.name)
        Button("改个name").onClick(() => {
          this.name = this.name == "小猫猫"?"小狗狗":"小猫猫";
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

我们定义了一个State修饰的响应式变量 name 类型为字符串 默认值 “小猫猫”
设置Watch监听 变量修改时触发 setName 函数
我们只需要点击button 就可以修改name

运行结果如下
在这里插入图片描述
触发button的点击事件 更改了 name name更改触发监听器 调用了 setName事件
显然没有问题

那么 这里有个点需要注意 就是不要无条件的在监听器中 修改被监听的值
例如

@State @Watch("addes") cot:number = 1;

addes() {
  this.cot = this.cot + 2;
}

这样 你第一次给他改了 他就会给自己 加2 然后继续加2 就是每次触发 改变了自己 就会又触发 形成一个死循环

你可以这样

@State @Watch("addes") cot:number = 1;

addes() {
  if(this.cot <= 10){
     this.cot = this.cot + 2;
  }
}

外面加个判断 达到某个条件 他就不改变自己了 这样是可以的 到10 他就走不进来 也就不会继续更改并触发自己了

这里 还有一个点
状态变量本身的装饰器和Watch前后顺序是不冲突的 可以放前面 也可以放后面
在这里插入图片描述
但官方建议的是放后面
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/271809.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么 C 语言被广泛应用于嵌入式系统开发?

为什么 C 语言被广泛应用于嵌入式系统开发&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「C 语言的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&a…

超纯水抛光树脂:光伏行业新技术应用

在清洁能源的领域中&#xff0c;高效太阳能电池&#xff0c;尤其是单晶硅电池&#xff0c;正日益受到重视。这些电池不仅转换效率高&#xff0c;而且耐用性强。然而&#xff0c;它们的制造过程对水质有着极高的要求&#xff0c;这就引入了超纯水的重要性。那么&#xff0c;超纯…

一套UWB精准定位系统源码,java语言开发,基于UWB技术自主研发的高精度人员定位系统源码

一套UWB精准定位系统源码&#xff0c;基于UWB技术自主研发的室内外人员定位系统源码 随着经济的高速发展&#xff0c;现代制造业生产设备日益繁多&#xff0c;生产车间面积广阔&#xff0c;生产工人数量多&#xff0c;存在难以进行有效管理和不便实施全方位风险管控的难题。 人…

kubernetes(k8s) Yaml 文件详解

YAML格式&#xff1a;用于配置和管理&#xff0c;YAML是一种简洁的非标记性语言&#xff0c;内容格式人性化&#xff0c;较易读。 1、查看API 资源版本标签 kubectl api-versions 2、编写资源配置清单 kubectl create -f nginx-test.yaml --validatefalse 2.3 查看创建的po…

MySQL报错:1054 - Unknown column ‘xx‘ in ‘field list的解决方法

我在操作MySQL遇到1054报错&#xff0c;报错内容&#xff1a;1054 - Unknown column Cindy in field list&#xff0c;下面演示解决方法&#xff0c;非常简单。 根据箭头指示&#xff0c;Cindy对应的应该是VARCHAR文本数字类型&#xff0c;字符串要用引号&#xff0c;所以解决方…

与供应商合作:成功供应商管理的六种最佳实践

许多企业低估了他们对外部供应商的依赖程度&#xff0c;也小看了这些供应商关系所涉及的风险。本文将探索企业与外部供应商合作的六种最佳实践&#xff0c;利用它们创建有效的供应商管理流程&#xff0c;从而降低成本和风险&#xff0c;并提高盈利能力。 供应商管理为何重要&a…

jsp页面bootstrap表格设置页面跳转一直在底部

首先介绍一下bootStrap和bootStrap table&#xff1a; bootStrap: Bootstrap是Twitter推出的一个用于前端开发的开源工具包。 它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。 bootStrap table: Bootstrap table 是一款基于 Bootstrap 的 jQue…

web组态--新一代全流程低代码物联网平台

先上图&#xff0c;实际完成效果&#xff1a; 1.添加应用图纸 登录by组态后台&#xff1a;http://www.byzt.net:90 ​ 点击组态管理-画面管理&#xff0c;先新建一个组态画面&#xff0c;填写画面名称&#xff0c;保存&#xff0c;进入组态画面。 ​ 选择画面管理&#xff0…

公司电脑文件加密系统

天锐绿盾文件加密系统是一种全面、高效的数据保护方案&#xff0c;利用文件加密技术对电脑中的数据进行保护。 PC访问地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 以下是该系统的核心功能&#xff1a; 文件加密&#xff1…

解析动态规划

本文由 简悦 SimpRead 转码&#xff0c; 原文地址 juejin.cn 前言 我们刷 leetcode 的时候&#xff0c;经常会遇到动态规划类型题目。动态规划问题非常非常经典&#xff0c;也很有技巧性&#xff0c;一般大厂都非常喜欢问。今天跟大家一起来学习动态规划的套路&#xff0c;文章…

Springboot静态资源与模板引擎Thymeleaf篇

一、导入静态资源 1.1 静态资源目录 只要静态资源放在类路径下&#xff1a; /static or /public or /resources or /META-INF/resources访问 &#xff1a; 当前项目根路径/ 静态资源名原理&#xff1a; 静态映射/**&#xff1b; "/**" 访问当前项目的任何资源 (静态…

基于JAVA的校园疫情防控管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生2.2 老师2.3 学校管理部门 三、系统展示四、核心代码4.1 新增健康情况上报4.2 查询健康咨询4.3 新增离返校申请4.4 查询防疫物资4.5 查询防控宣传数据 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBoot…

Electron 调用Nodejs系统API提示 Error: module not found:xxx 解决方法

最近使用Electron 调用系统API时 居然提示模块为找到异常, 原因是 在Electron大于20版本时渲染进程系统默认启用了沙盒 sandbox. 当 Electron 中的渲染进程被沙盒化时&#xff0c;它们的行为与常规 Chrome 渲染器一样。 一个沙盒化的渲染器不会有一个 Node.js 环境。 所以, …

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Toast组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Toast组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Toast组件 Toast 的应用场景也非常广泛&#xff0c;比如网络请求出错了可以弹一个…

基于XLA_GPU的llama7b推理

环境 pytorch-tpu/llamapytorch 2.1.2(cuda117)torch-xla 2.1.1 # llama2 git clone --branch llama2-google-next-inference https://github.com/pytorch-tpu/llama.git # pytorch git clone https://github.com/pytorch/pytorch.git git checkout v2.1.2 # 部分仓库可能下载…

Jmeter 压测 —— 非GUI模式执行实例!

1、上传脚本 把在Windows下调试好的脚本上传的Linux系统/home目录下。 注意&#xff1a;只留测试脚本&#xff0c;屏蔽其它监控组件&#xff0c;比如&#xff1a;查看结果树、聚合报告、监听器等。 2、执行脚本 ①输入命令执行脚本 jmeter -n -t case.jmx -l case.jtl -n&…

书生·浦语大模型实战营——两周带你玩转微调部署评测全链路

引言 人工智能技术的发展日新月异&#xff0c;其中大模型的发展尤其迅速&#xff0c;已然是 AI 时代最炙手可热的当红炸子鸡。 然而&#xff0c;大模型赛道对于小白开发者来说还是有不小的门槛。面对内容质量参差不齐的课程和实际操作中遇到的问题&#xff0c;许多开发者往往…

2015年第四届数学建模国际赛小美赛C题科学能解决恐怖主义吗解题全过程文档及程序

2015年第四届数学建模国际赛小美赛 C题 科学能解决恐怖主义吗 原题再现&#xff1a; 为什么人们转向恐怖主义&#xff0c;特别是自杀性恐怖主义&#xff1f;主要原因是什么&#xff1f;这通常是大问题和小问题的结合&#xff0c;或者是一些人所说的“推拉”因素。更大的问题包…