91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HarmonyOS Next V2 @Event

萬少 ? 來源:jf_22972444 ? 作者:jf_22972444 ? 2025-03-31 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

HarmonyOS Next V2 @Event

背景

在上一節中,我們針對父子組件,講了關于傳遞數據的知識。我們了解到

  1. @Local 是管理自己內部的數據的,
  2. @Param 是負責接收父組件的數據的,而且子自己內部不能直接修改

按照一個組件最基本的功能, 既能接收外部傳入的數據也要向外部傳遞數據 。那么 @Event 修飾符就是來解決這個問題的了。

介紹

@Event 是 子組件向父組件傳遞數據的技術,它只能用在 @ComponentV2 修改的組件上,其中的思想是

  1. 完成修改數據的操作,還是放在父組件內部,通過定義一個函數 func 來實現
  2. 在父組件調用子組件的時候,也順帶把這個函數 func 傳遞給子組件
  3. 子組件在內部 使用 @Event 來修飾 該函數,并且在需要的使用直接調用即可

父組件

  1. 定義內部數據 num
  2. 定義修改內部數據num的函數 func
  3. 使用子組件時,把numfunc都傳遞過去

@Entry
@ComponentV2
struct Index {
@Local num: number = 100
// 自己定義的函數 負責修改數據, 該函數也要傳遞給子組件
func = (unit: number) => {
this.num -= unit
}

build() {
Column() {
Button("父組件 修改" + this.num)
.onClick(() => {
this.num++
})
// 使用子組件,并且傳遞數據 和 傳遞函數
Son({ num: this.num, func: this.func })
.padding(10)
}
.width("100%")

}
}

## 子組件

1. 使用 `@Param` 接收父組件傳遞的 `num`
2. 使用`@Event` 接收父組件傳遞的函數 `func`
3. 定義點擊事件的處理函數 `onfunc`,內部直接調用父組件傳遞過來的函數

@ComponentV2
struct Son {
@Param num: number = 0
@Event func: (num: number) => void = () => {
}
onfunc = () => {
this.func(5)
}

build() {

Column() {
  Button(`子組件 ${this.num}`)

  Button("子組件修改父組件中的狀態")
    .onClick(this.onfunc)
}
.border({
  width: 1,
  style: BorderStyle.Dashed
})

}
}

## 流程

![image-20240723105343511](https://wsy996.obs.cn-east-3.myhuaweicloud.com/HarmonyOS%20Next%20V2%20%40Event/readme.assets/image-20240723105343511.png?x-image-process=style/style-8860)

## @Once

`@Once``@Param`作用類似,都可以表示接收父組件傳遞過來的數據,但是也存在區別

1. `@Once` 只會接收第一次父組件傳遞過來的數據,后續父組件的數據修改,不會同步到 `@Once`修改的變量上
2. `@Once` 需要和 `@Param` 一起搭配使用,因為 `@Param` 修飾的是父組件傳遞給子組件的變量,該變量不能直接被修改。所以`@Once`修飾的變量,也不能在子組件內部直接修改。

@ComponentV2
struct Son {
@Once @Param num: number = 0

build() {
Column() {
Button(子組件 ${this.num})
.onClick(() => {
this.num++ // 修改無效
})
}
.border({
width: 1,
style: BorderStyle.Dashed
})
}
}

@Entry
@ComponentV2
struct Index {
@Local num: number = 100

build() {
Column() {

Son({ num: this.num })
    .padding(10)
}
.width("100%")

}
}

![image-20240723110522686](https://wsy996.obs.cn-east-3.myhuaweicloud.com/HarmonyOS%20Next%20V2%20%40Event/readme.assets/image-20240723110522686.png?x-image-process=style/style-8860)

## 總結

1. `@Param` 表示父組件傳遞給子組件的數據,當父組件修改了,子組件會跟隨響應,同時子組件內部不能直接修改 `@Param`修飾的變量
2. `@Event` 表示子組件想要修改父組件數據的一種技術,它用來修改函數,該函數是由父組件定義和傳遞給子組件的
3. `@Once` 必須和 `@Param` 搭配使用,表示父組件傳遞過來的數據,只會第一次生效。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    80

    文章

    2126

    瀏覽量

    33066
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    HarmonyOS Next MQTT演示

    HarmonyOS Next MQTT演示
    發表于 11-07 16:54

    ST-LINK/V2 ST-LINK/V2ST-LINK / V2在調試器/編程器STM8和STM32

    電子發燒友網為你提供(ti)ST-LINK/V2相關產品參數、數據手冊,更有ST-LINK/V2的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ST-LINK/V2真值表,ST-LINK/V2
    發表于 05-21 00:05

    Kinect v2(Microsoft Kinect for Windows v2 )配置移動電源解決方案

    Kinect v2配置移動電源解決方案Kinect v2如果用于移動機器人上(也可以是其他應用場景),為方便有效地展開后續工作,為其配置移動電源是十分必要的。一、選擇移動電源Kinect v2原裝
    發表于 01-05 14:51 ?5次下載
    Kinect <b class='flag-5'>v2</b>(Microsoft Kinect for Windows <b class='flag-5'>v2</b> )配置移動電源解決方案

    Kinect v2(Microsoft Kinect for Windows v2 )配置移動電源解決方案

    Kinect v2(Microsoft Kinect for Windows v2 )配置移動電源解決方案
    發表于 01-05 14:53 ?0次下載
    Kinect <b class='flag-5'>v2</b>(Microsoft Kinect for Windows <b class='flag-5'>v2</b> )配置移動電源解決方案

    學習V2更新板開源分享

    電子發燒友網站提供《學習V2更新板開源分享.zip》資料免費下載
    發表于 07-26 09:38 ?0次下載
    學習<b class='flag-5'>V2</b>更新板開源分享

    LED面板V2開源分享

    電子發燒友網站提供《LED面板V2開源分享.zip》資料免費下載
    發表于 08-02 09:37 ?2次下載
    LED面板<b class='flag-5'>V2</b>開源分享

    智能BMS V2開源設計

    電子發燒友網站提供《智能BMS V2開源設計.zip》資料免費下載
    發表于 08-08 11:38 ?18次下載
    智能BMS <b class='flag-5'>V2</b>開源設計

    Leaphy Motor shield V2開源

    電子發燒友網站提供《Leaphy Motor shield V2開源.zip》資料免費下載
    發表于 08-22 15:41 ?0次下載
    Leaphy Motor shield <b class='flag-5'>V2</b>開源

    NodeMCU V2 Amica V3 Lolin的盾牌

    電子發燒友網站提供《NodeMCU V2 Amica V3 Lolin的盾牌.zip》資料免費下載
    發表于 08-24 10:05 ?2次下載
    NodeMCU <b class='flag-5'>V2</b> Amica <b class='flag-5'>V</b>3 Lolin的盾牌

    悟空PCB徽章V2開源分享

    電子發燒友網站提供《悟空PCB徽章V2開源分享.zip》資料免費下載
    發表于 10-31 11:06 ?0次下載
    悟空PCB徽章<b class='flag-5'>V2</b>開源分享

    V2 控制器的操作原理

    V2 控制器的操作原理
    發表于 11-14 21:08 ?1次下載
    <b class='flag-5'>V2</b> 控制器的操作原理

    淘寶與華為合作將基于HarmonyOS NEXT啟動鴻蒙原生應用開發

    1月25日,淘寶與華為舉辦鴻蒙合作簽約儀式,宣布將基于HarmonyOS NEXT啟動鴻蒙原生應用開發。
    的頭像 發表于 01-26 16:14 ?1498次閱讀

    華為HarmonyOS NEXT 10月8日開啟公測

    華為宣布,萬眾矚目的HarmonyOS NEXT操作系統將于10月8日正式開啟公測,標志著這一創新力作即將與廣大用戶見面。HarmonyOS NEXT作為華為自研操作系統的最新成果,不
    的頭像 發表于 09-24 15:41 ?1407次閱讀
    華為<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>NEXT</b> 10月8日開啟公測

    HarmonyOS Next V2 @Local 和@Param

    HarmonyOS Next V2 @Local 和@Param @Local 背景 @Local 是 harmony 應用開發中的 v2 版本中 對標**@State**的狀態管理修
    的頭像 發表于 04-02 18:27 ?392次閱讀
    <b class='flag-5'>HarmonyOS</b> <b class='flag-5'>Next</b> <b class='flag-5'>V2</b> @Local 和@Param

    HarmonyOS Next V2 @Monitor 和@Computed

    HarmonyOS Next V2 @Monitor 和@Computed @Monitor 介紹 @Monitor 是狀態把管理 V2 版本中的用于監聽狀態變量修改的技術。 它可以直
    的頭像 發表于 04-02 18:26 ?357次閱讀
    主站蜘蛛池模板: 猛操在线| 免费一级特黄视频 | 91激情在线 | 亚洲男人的天堂在线观看 | 一区二区三区四区国产精品 | 亚洲黄色在线网站 | 69久久夜色精品国产69小说 | 在线视频免费播放 | 亚洲国产综合视频 | 欧美人与牲动交xxxx | 日本h视频在线 | 99精品在免费线视频 | 色婷婷久 | 加勒比一区二区 | 国产亚洲精品久久久久久午夜 | 久久成人免费网站 | 午夜欧美性欧美 | 5566成人免费视频观看 | 黄色毛片免费进入 | 亚洲 欧美 日韩 综合 | 天堂最新版免费观看 | 国产亚洲欧美成人久久片 | 国产在线麻豆自在拍91精品 | 五月天婷婷丁香花 | 国产专区青青草原亚洲 | 免费成人看片 | 国产在线视欧美亚综合 | japanese色系国产在线高清 | h在线观看免费 | 最新亚洲人成网站在线影院 | 国产精品视频一区二区三区 | 亚洲高清国产拍精品影院 | 一级一黄在线观看视频免费 | 久久精品国产99国产精品免费看 | 日本最黄视频 | 午夜爽视频 | 国内外精品免费视频 | 亚洲午夜小视频 | 俺去鲁婷婷六月色综合 | 久久在线播放 | 日本一卡二卡≡卡四卡精品 |