一文彻底拿下HarmonyOS中的@State和@Prop和@Link的区别和联系

简介: 本文介绍HarmonyOS中的装饰器、@State、@Prop和@Link。装饰器增强代码功能;@State管理组件状态,触发重新渲染;@Prop单向传递数据;@Link实现双向数据绑定。希望对你有帮助!

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、嵌入式、鸿蒙、人工智能等,专注于程序员成长那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!


1.Harmony OS中的装饰器

在 HarmonyOS 中,装饰器是一种强大的编程特性,它可以在不修改原代码结构的基础上,为类、方法、属性等添加额外的功能和特性,提高代码的可读性、可维护性和可扩展性

装饰器是一种特殊的语法,它以 @ 符号开头,后面跟着一个函数或类的名称。

这个函数或类将被应用到所修饰的代码元素上,对其进行包装或修改。

装饰器本质上是一个高阶函数,它接收一个函数或类作为参数,并返回一个经过修改或增强的函数或类。

image.png

2.@State

@State 用于定义组件内部的状态变量,是组件的私有状态。

当 @State 修饰的变量发生变化时,会触发组件的重新渲染,以反映状态的更新。

它的生命周期与组件绑定,组件销毁时,@State 变量也会被销毁。

状态改变仅影响当前组件及其子组件。

3.@Prop

@Prop 用于父组件向子组件传递数据,它是单向的数据传递方式。

子组件不能修改通过 @Prop 接收的数据,只能读取。

当父组件更新 @Prop 数据时,子组件会收到更新并重新渲染。

4.@Link

@Link 也用于父组件向子组件传递数据,但它是双向的数据传递。

子组件可以修改通过 @Link 接收的数据,并且修改会反映到父组件中。

子组件和父组件中的 @Link 变量实际上是共享同一份数据,它们的状态是同步的。

好啦,就到这,今天写项目的时候,被这三个搞迷糊啦,所以得记录一下!

相关文章
|
安全 Android开发 数据安全/隐私保护
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
1718 1
|
8月前
|
JavaScript 前端开发 物联网
全面解析鸿蒙相关概念:鸿蒙、开源鸿蒙、鸿蒙 Next 有何区别
程序员晚枫近期研究了鸿蒙系统相关概念,主要包括 OpenHarmony、HarmonyOS 和 HarmonyOS NEXT。OpenHarmony 是开源项目,适用于物联网设备;HarmonyOS 由华为开发,兼容安卓应用,用于手机和平板等;HarmonyOS NEXT 剔除安卓生态,采用纯鸿蒙技术,专注原生应用开发。三者在技术架构、应用场景和开发工具上各有特点,共同推动鸿蒙生态系统的发展。
2110 5
全面解析鸿蒙相关概念:鸿蒙、开源鸿蒙、鸿蒙 Next 有何区别
|
Android开发 开发者
HarmonyOS和OpenHarmony区别联系
【7月更文挑战第26天】
908 17
|
开发工具 Android开发 开发者
OpenHarmony与HarmonyOS有什么区别?
如果你对HarmonyOS底层的技术感兴趣,想了解或者想对HarmonyOS做贡献,那么选择OpenHarmony。当然,如果想更进一步,做一款属于自己的操作系统,基于OpenHarmony开源项目做二次开发也是不错的选择哦。
588 1
|
Java 开发工具 Android开发
鸿蒙HarmonyOS 与 Android 的NDK有什么区别?
鸿蒙(HarmonyOS)和Android的NDK(Native Development Kit)是两个不同的概念,它们在设计理念、架构、开发方式和目标平台等方面存在着一些显著的不同。
1012 0
|
JavaScript IDE 开发工具
HarmonyOS3项目扩展名ets文件和ts文件有什么区别
HarmonyOS3项目扩展名ets文件和ts文件有什么区别
962 0
|
3月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
393 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
3月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
393 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
6月前
|
安全 JavaScript API
鸿蒙开发核心要素
鸿蒙开发核心要素
|
3月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
855 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡