国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HarmonyOS應用開發(fā)學習筆記 UIAbility組件與UI的數(shù)據(jù)同步 EventHub、globalThis

這篇具有很好參考價值的文章主要介紹了HarmonyOS應用開發(fā)學習筆記 UIAbility組件與UI的數(shù)據(jù)同步 EventHub、globalThis。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、 HarmoryOS Ability頁面的生命周期
2、 @Component自定義組件
3、HarmonyOS 應用開發(fā)學習筆記 ets組件生命周期
4、HarmonyOS 應用開發(fā)學習筆記 ets組件樣式定義 @Styles裝飾器:定義組件重用樣式 @Extend裝飾器:定義擴展組件樣式
5、HarmonyOS 應用開發(fā)學習筆記 state狀態(tài)管理概述
6、HarmonyOS應用開發(fā)學習筆記 包名、icon圖標,應用名修改 UIAbility組件介紹、UIAbility啟動模式、UIAbility組件基本用法

基于HarmonyOS的應用模型,可以通過以下兩種方式來實現(xiàn)UIAbility組件與UI之間的數(shù)據(jù)同步。

項目 描述
EventHub 基于發(fā)布訂閱模式來實現(xiàn),事件需要先訂閱后發(fā)布,訂閱者收到消息后進行處理。
globalThis ArkTS引擎實例內(nèi)部的一個全局對象,在ArkTS引擎實例內(nèi)部都能訪問。

一、使用EventHub進行數(shù)據(jù)通信

EventHub和android EventBus很類似,三部曲:

1、EventHub 聲明訂閱

EventHub.on()
參數(shù)名 類型 必填 說明
event string 事件名稱。
callback Function 事件回調(diào),事件觸發(fā)后運行。
        this.context.eventHub.on('123', this.func1);
        this.context.eventHub.on('123', () => {
            console.log('call anonymous func 1');
        });

2、EventHub 發(fā)送消息,訂閱回調(diào)

EventHub.emit()
參數(shù)名 類型 必填 說明
event string 事件名稱。
…args Object[] 可變參數(shù),事件觸發(fā)時,傳遞給回調(diào)函數(shù)的參數(shù)。
  this.context.eventHub.emit('123');
  this.context.eventHub.emit('123', 1);
  this.context.eventHub.emit('123', 1, 2);  

3、EventHub 取消訂閱

EventHub.off()
參數(shù)名 類型 必填 說明
event string 事件名稱。
callback Function 事件回調(diào)。如果不傳callback,則取消訂閱該事件下所有callback。
        this.context.eventHub.on('123', this.func2);//取消指定方法的訂閱
        this.context.eventHub.off('123');  //取消訂閱"123"

4、示例

  • 訂閱
import UIAbility from '@ohos.app.ability.UIAbility';

const TAG: string = '[Example].[Entry].[EntryAbility]';

export default class EntryAbility extends UIAbility {
    func1(...data) {
        // 觸發(fā)事件,完成相應的業(yè)務操作
        console.info(TAG, '1. ' + JSON.stringify(data));
    }

    onCreate(want, launch) {
        // 獲取eventHub
        let eventhub = this.context.eventHub;
        // 執(zhí)行訂閱操作
        eventhub.on('event1', this.func1);
        eventhub.on('event1', (...data) => {
            // 觸發(fā)事件,完成相應的業(yè)務操作
            console.info(TAG, '2. ' + JSON.stringify(data));
        });
    }
}
  • 發(fā)送消息
import common from '@ohos.app.ability.common';

@Entry
@Component
struct Index {
  private context = getContext(this) as common.UIAbilityContext;

  eventHubFunc() {
    // 不帶參數(shù)觸發(fā)自定義“event1”事件
    this.context.eventHub.emit('event1');
    // 帶1個參數(shù)觸發(fā)自定義“event1”事件
    this.context.eventHub.emit('event1', 1);
    // 帶2個參數(shù)觸發(fā)自定義“event1”事件
    this.context.eventHub.emit('event1', 2, 'test');
    // 開發(fā)者可以根據(jù)實際的業(yè)務場景設計事件傳遞的參數(shù)
  }

  // 頁面展示
  build() {
    // ...
  }
}
  • 取消訂閱
// context為UIAbility實例的AbilityContext
this.context.eventHub.off('event1');

二、使用globalThis進行數(shù)據(jù)同步

globalThis是ArkTS引擎實例內(nèi)部的一個全局對象,引擎內(nèi)部的UIAbility/ExtensionAbility/Page都可以使用,因此可以使用globalThis全局對象進行數(shù)據(jù)同步。
使用globalThis進行數(shù)據(jù)同步

1、使用

//數(shù)據(jù)存入globalThis中
 globalThis.xxx= aa;
//需要使用的地方調(diào)用
let a=globalThis.xxx

AbilityA中保存數(shù)據(jù)一個字符串數(shù)據(jù)并掛載到globalThis上。

import UIAbility from '@ohos.app.ability.UIAbility'

export default class AbilityA extends UIAbility {
    onCreate(want, launch) {
        globalThis.entryAbilityStr = 'AbilityA'; // AbilityA存放字符串“AbilityA”到globalThis
        // ...
    }
}

AbilityB中獲取對應的數(shù)據(jù)

import UIAbility from '@ohos.app.ability.UIAbility'

export default class AbilityB extends UIAbility {
    onCreate(want, launch) {
        // AbilityB從globalThis讀取name并輸出
        console.info('name from entryAbilityStr: ' + globalThis.entryAbilityStr);
        // ...
    }
}

組件之間也是如此

2、globalThis使用的注意事項

HarmonyOS應用開發(fā)學習筆記 UIAbility組件與UI的數(shù)據(jù)同步 EventHub、globalThis,鴻蒙HarmonOS,harmonyos,學習,筆記,EventHub,globalThis,HarmonyOS數(shù)據(jù)同步文章來源地址http://www.zghlxwxcb.cn/news/detail-778115.html

1) 存放名稱不要相同

  • Stage模型下進程內(nèi)的UIAbility組件共享ArkTS引擎實例,使用globalThis時需要避免存放相同名稱的對象。例如AbilityA和AbilityB可以使用globalThis共享數(shù)據(jù),在存放相同名稱的對象時,先存放的對象會被后存放的對象覆蓋。

2)用完將其賦值為null,以減少對應用內(nèi)存的占用。

  • 對于綁定在globalThis上的對象,其生命周期與ArkTS虛擬機實例相同,建議在使用完成之后將其賦值為null,以減少對應用內(nèi)存的占用。

到了這里,關于HarmonyOS應用開發(fā)學習筆記 UIAbility組件與UI的數(shù)據(jù)同步 EventHub、globalThis的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • HarmonyOS應用開發(fā)學習筆記 UI布局學習 創(chuàng)建輪播(Swiper) artTS 輪播組件 簡單使用

    HarmonyOS應用開發(fā)學習筆記 UI布局學習 創(chuàng)建輪播(Swiper) artTS 輪播組件 簡單使用

    官方文檔 Swiper組件提供滑動輪播顯示的能力。Swiper本身是一個容器組件,當設置了多個子組件后,可以對這些子組件進行輪播顯示。通常,在一些應用首頁顯示推薦的內(nèi)容時,需要用到輪播顯示的能力。 loop 控制是否循環(huán) this.swiperController.showNext(); // 通過controller切換到后一頁

    2024年02月02日
    瀏覽(37)
  • 鴻蒙(HarmonyOS)應用開發(fā)——應用程序入口UIAbility(題目答案)

    1.一個應用只能有一個UIAbility。 錯誤(False) 解析:可以有多個,也可以有一個 2.創(chuàng)建的Empty Ability模板工程,初始會生成一個UIAbility文件。 正確(True) 3.每調(diào)用一次router.pushUrl()方法,頁面路由棧數(shù)量均會加1。 錯誤(False) 解析: pushUrl()有兩種模式,一種單實例模式,一種是多實例

    2024年02月04日
    瀏覽(30)
  • HarmonyOS 應用開發(fā)學習筆記 狀態(tài)管理概述

    HarmonyOS 應用開發(fā)學習筆記 狀態(tài)管理概述

    移動端開發(fā),最重要的一點就是數(shù)據(jù)的處理,并且正確的顯示渲染UI。 變量在頁面和組件、組件和組件之間有時候并不能實時共享,而有時候,又不需要太多的作用域(節(jié)省資源),作用就需要根據(jù)不同場景,設置不同狀態(tài)的變量。 官方文檔 在聲明式UI編程框架中,UI是程序

    2024年02月03日
    瀏覽(21)
  • HarmonyOS應用開發(fā)學習筆記 ArkTS 布局概述

    HarmonyOS應用開發(fā)學習筆記 ArkTS 布局概述

    布局指用特定的組件或者屬性來管理用戶頁面所放置UI組件的大小和位置。在實際的開發(fā)過程中,需要遵守以下流程保證整體的布局效果 確定頁面的布局結構。 分析頁面中的元素構成。 選用適合的布局容器組件或屬性控制頁面中各個元素的位置和大小約束。 布局元素的組成

    2024年02月01日
    瀏覽(28)
  • 鴻蒙HarmonyOS4.0開發(fā)應用學習筆記

    鴻蒙HarmonyOS4.0開發(fā)應用學習筆記

    鴻蒙harmony開發(fā)文檔指南 DevEco Studio下載地址 選擇或者安裝環(huán)境 選擇和下載SDK 安裝總覽 編輯器界面 2.1變量聲明 2.2條件控制 2.3循環(huán)迭代 2.4函數(shù) 2.5類和接口 2.6模塊開發(fā) 通用功能抽取到單獨的ts文件,每個文件都是一個模塊(module)。 模塊可以相互加載,提高代碼復用性。 crea

    2024年02月04日
    瀏覽(31)
  • HarmonyOS應用開發(fā)學習筆記 UI布局學習 相對布局 (RelativeContainer)

    HarmonyOS應用開發(fā)學習筆記 UI布局學習 相對布局 (RelativeContainer)

    官方文檔 其實很好理解 :alignRules{}里面表示: 元素四個方向(left,top,bottom,right), 相對于誰(anchor:‘id’) 的什么位置(HorizontalAlign.Start ,VerticalAlign.Bottom ,VerticalAlign.Bottom, HorizontalAlign.End ) RelativeContainer為采用相對布局的容器,支持容器內(nèi)部的子元素設置相對位

    2024年02月02日
    瀏覽(26)
  • HarmonyOS應用開發(fā)者高級認證學習認證知識答疑筆記

    1. 判斷題 1. 云函數(shù)打包完成后,需要到APPGallery Connect創(chuàng)建對應函數(shù)的觸發(fā)器才可以在端側中調(diào)用 錯 2. 每一個自定義組件都有自己的生命周期 對 3. 基于端云一體化開發(fā),開發(fā)者需要精通前端,后端不同的開發(fā)語言。 錯 4. 首選項preferences是以key-value形式存儲數(shù)據(jù),其中key是可

    2024年02月04日
    瀏覽(19)
  • HarmonyOS應用開發(fā)學習筆記 UI布局學習 柵格布局(GridRow/GridCol)

    HarmonyOS應用開發(fā)學習筆記 UI布局學習 柵格布局(GridRow/GridCol)

    HarmonyOS應用開發(fā)學習筆記 UI布局學習 相對布局 (RelativeContainer) 官方文檔:柵格布局(GridRow/GridCol) 通過設置GridRow的direction屬性來指定柵格子組件在柵格容器中的排列方向 代碼 描述 GridRowDirection.Row 從左往右排列 GridRowDirection.RowReverse 從右往左排列 左往右排列 子組件從右

    2024年02月03日
    瀏覽(24)
  • HarmonyOS應用開發(fā)學習筆記 UI布局學習 List(){}創(chuàng)建列表 列表形式顯示 簡單使用

    HarmonyOS應用開發(fā)學習筆記 UI布局學習 List(){}創(chuàng)建列表 列表形式顯示 簡單使用

    List 創(chuàng)建列表 列表形式顯示 官方文檔:創(chuàng)建列表(List) 關鍵代碼 List(){} 列表控件 ListItem() {} 子元素 例如 關鍵代碼:listDirection(Axis.Horizontal) 默認豎直方向 Axis.Vertical 分隔線的寬度會使ListItem之間存在一定間隔,當List設置的內(nèi)容間距小于分隔線寬度時,ListItem之間的間隔會使用

    2024年02月02日
    瀏覽(34)
  • HarmonyOS/OpenHarmony應用開發(fā)-Stage模型應用/組件級配置

    HarmonyOS/OpenHarmony應用開發(fā)-Stage模型應用/組件級配置

    在開發(fā)應用時,需要配置應用的一些標簽,例如應用的包名、圖標等標識特征的屬性。本文描述了在開發(fā)應用需要配置的一些關鍵標簽。圖標和標簽通常一起配置,可以分為應用圖標、應用標簽和入口圖標、入口標簽,分別對應 app.json5配置文件 和 module.json5配置文件 文件中的

    2024年02月13日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包