吴忠躺衫网络科技有限公司

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

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

3天內不再提示

鴻蒙OS開發實例:【裝飾器@Observed@ObjectLink】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-28 17:05 ? 次閱讀

背景

加深對@Observed@ObjectLink 裝飾器使用的理解,以小故事做注釋

效果

Screenshot_20231126110226119.png

代碼片段

這是一個故事

Boss為了交付兩個完全一樣的客戶項目【只要寫1萬行代碼】,在公司內部,把一個程序員配給了項目經理,讓其監督寫代碼

項目經理領到指示后, 先告知客戶一,公司為其配了專職程序員,由其隨時發號施令讓其敲代碼,然后又以同樣的話術告知客戶二

接下來的事情,客戶一和客戶二,他們都非常滿意,因為每一天,雖然他們各自只督促程序員寫了一行代碼,但每天下班時,
客戶們都能看到兩行代碼,呵呵。

Boss聽聞此事,甚是開心,遂告知項目經理,也要在每天中督促一次程序員,果不其然,程序員竟然每天可以寫三行代碼了,
對此老板深思了一會......, 做了一個決定,將項目中的程序直接換掉, 僅留當前的項目經理.
later,客戶發現之前寫的代碼沒了,哭天罵娘

神明英武的Boss一氣之下,為客戶們重新配了新的項目經理和新的程序員

搜狗高速瀏覽器截圖20240326151547.png

@Entry
@Component
struct Boss{
  @State projectManager: ProjectManager = new ProjectManager(new Programmer(0, '小哥1'), '項管1');

  build(){
    Column({space: 50}){
      Customer({ label: '客戶一', programmer: this.projectManager.programmer })
      Customer({ label: '客戶二', programmer: this.projectManager.programmer })

      Button(`this.projectManager.programmer.codelines+= 1`)
        .onClick(() = > {
          //Boss告知項目經理督促程序員寫代碼
          this.projectManager.programmer.codelines += 1;
        })

      Button(`this.projectManager.programmer = new Programmer(0)`)
        .onClick(() = > {
          //換程序員
          this.projectManager.programmer = new Programmer(0, '小哥2');
        })

      Button(`this.projectManager = new ProjectManager(Programmer(0))`)
        .onClick(() = > {
          //換項目經理,換程序員
          this.projectManager = new ProjectManager(new Programmer(0, '小哥3'), '項管2');
        })

    }
    .width('100%')
    .height('100%')
    .padding({top: px2vp(111)})
    .alignItems(HorizontalAlign.Center)
    .justifyContent(FlexAlign.Center)
    .backgroundColor(Color.Pink)
  }
}

@Observed
class Programmer {
  public name: string
  public codelines: number = 1;

  constructor(c: number, d: string) {
    this.codelines = c;
    this.name = d;
  }
}

class ProjectManager {
  public name: string
  public programmer: Programmer;

  constructor(a: Programmer, b: string) {
    this.programmer = a;
    this.name = b;
  }
}

@Component
struct Customer {
  label: string = 'customer';
  @ObjectLink programmer: Programmer;

  build() {
    Row() {
      Button(`[${this.label}] 讓 ${this.programmer.name} 寫代碼 = ${this.programmer.codelines}`)
        .onClick(() = > {
            this.programmer.codelines += 1;
        })
    }.backgroundColor(Color.Green).padding('16vp')
  }
}

審核編輯 黃宇

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

    關注

    30

    文章

    4828

    瀏覽量

    69063
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    190

    瀏覽量

    4540
收藏 人收藏

    評論

    相關推薦

    鴻蒙OS開發實例:【頁面傳值跳轉】

    本篇主要介紹如何在HarmonyOS中,在頁面跳轉之間如何傳值 HarmonyOS 的頁面指的是帶有@Entry裝飾的文件,其不能獨自存在,必須依賴UIAbility這樣的組件容器 如下是官方關于State模型開發模式
    的頭像 發表于 03-29 20:16 ?2342次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【頁面傳值跳轉】

    Harmony 鴻蒙頁面級變量的狀態管理

    += 1 }) } } @ObservedObjectLink數據管理 當開發者需要在子組件中針對父組件的一個變量(parent_a)設置雙向同步時,開發者可以在父組件中使用@S
    發表于 01-24 20:04

    鴻蒙OS應用程序開發

    這份學習文檔主要是帶領大家在鴻蒙OS上學習開發一個應用程序,主要知識點如下:1、U-Boot引導文件燒寫方式;2、內核鏡像燒寫方式;3、鏡像運行。
    發表于 09-11 14:39

    【中秋國慶不斷更】OpenHarmony嵌套類對象屬性變化:@Observed裝飾和@ObjectLink裝飾

    ,使用new創建類對象。 @ObjectLink變量裝飾 說明 裝飾參數 無 同步類型 不與父組件中的任何類型同步變量。 允許
    發表于 09-27 16:26

    鴻蒙 OS 應用開發初體驗

    的 IDE、鴻蒙生態的開發語言 ArkTS,通過模擬運行起來了鴻蒙 OS 版 HelloWorld。對于已經有移動
    發表于 11-02 19:38

    嵌入式系統設計與實例開發—ARM與uC/OS-Ⅱ

    嵌入式系統設計與實例開發 ——ARM與uC/OS-Ⅱ
    發表于 11-08 17:32 ?0次下載

    鴻蒙OS系統詳解

    華為的鴻蒙OS是一款“面向未來”的操作系統,是基于微內核的全場景分布式OS,可按需擴展,實現更廣泛的系統安全。目前主要用于智能物聯網,今年將擴展到智能手機上鴻蒙
    的頭像 發表于 11-12 11:24 ?1.4w次閱讀

    鴻蒙OS 2.0手機開發者Beta版發布會在京舉辦

    三個月前,鴻蒙OS 2.0正式在華為開發者大會2020亮相。12月16日,鴻蒙OS 2.0手機開發
    的頭像 發表于 12-16 09:29 ?1.9w次閱讀

    華為發布鴻蒙OS Beta版

    昨天華為發布鴻蒙OS Beta版了?鴻蒙系統一直在按照既有步伐前進,現在華為發布鴻蒙OS Beta版,而且一些生態
    的頭像 發表于 12-17 08:41 ?2930次閱讀

    鴻蒙OS與Lite OS的區別是什么

    鴻蒙OS鴻蒙OS面向未來、面向全場景、分布式。在單設備系統能力基礎上,鴻蒙OS提出了基于同一套系
    的頭像 發表于 12-24 12:40 ?5104次閱讀

    鴻蒙os怎么升級

    6月2日,華為正式發布了鴻蒙armonyOS 2系統,那么鴻蒙os如何升級?現將鴻蒙os升級方式告知如下。
    的頭像 發表于 06-08 16:26 ?2807次閱讀

    華為開發者大會2021鴻蒙os在哪場

    華為開發者大會2021將在10月22日-24日舉辦,地點為東莞松山湖,鴻蒙os 3.0或將與我們見面,那么華為開發者大會2021鴻蒙
    的頭像 發表于 10-22 15:24 ?1955次閱讀

    鴻蒙OS開發實例:【裝飾-@BuilderParam】

    這是一個基礎概念,其實沒有什么原因,練習過程中,自然可以感受到其用法,后期加上真實項目的演練,會形成習慣
    的頭像 發表于 03-28 17:40 ?752次閱讀

    鴻蒙OS開發教學:【編程之重-裝飾

    1. @State 2. @Prop 3. @Link 4. @ObjectLink 5. @Watch 6. @Styles 7. @StorageProp 8.
    的頭像 發表于 04-01 16:09 ?624次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>教學:【編程之重<b class='flag-5'>器</b>-<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>】

    鴻蒙OS開發實例:【ArkTS類庫多線程@Concurrent裝飾校驗并發函數】

    在使用TaskPool時,執行的并發函數需要使用該裝飾修飾,否則無法通過相關校驗。從API version 9開始,該裝飾支持在ArkTS卡片中使用。
    的頭像 發表于 04-02 14:45 ?789次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【ArkTS類庫多線程@Concurrent<b class='flag-5'>裝飾</b><b class='flag-5'>器</b>校驗并發函數】
    爱婴百家乐的玩法技巧和规则| 百家乐官网注册下注平台| 百家乐便利| 百家乐官网路珠多少钱| bet365官方| 百家乐最新的投注方法| 百家乐官网赌博机销售| 美高梅娱乐城网址| 百家乐赌博博彩赌博网| 致胜百家乐官网的玩法技巧和规则 | 百家乐官网赢利策略| 太阳城代理最新网址| 百家乐规则博彩正网| 爱赢百家乐官网开户送现金| 大发888国际体育| 奔驰百家乐游戏电玩| 世界德州扑克大赛| 马洪刚百家乐技巧| 百家乐官网棋牌游戏源码| 百家乐分析软件| 威尼斯人娱乐城首选d77com| 百家乐筹码多少钱| 百家乐官网智能系统| 百家乐官网波浪法则| 大发888投注技巧| 游戏机百家乐下载| 百家乐软件官方| 百家乐官网智能分析| 怀柔区| 六合彩网| 太阳城伞| 红宝石百家乐娱乐城| 百家乐赢的技巧| 宝马会百家乐官网娱乐城| 邯郸百家乐官网园真钱区| 大发扑克娱乐场| 大发888创建账号翻译| 温州市百家乐鞋业| 百家乐在线怎么玩| 郑州百家乐官网的玩法技巧和规则| 蓝盾百家乐官网平台租用|