ArkTS聲明式開發范式

ArkTS聲明式開發

裝飾器

用來裝飾類、結構體、方法以及變量,賦予其特殊的含義,如上述示例中 @Entry 、 @Component 、 @State 都是裝飾器。

  • @Component 表示這是個自定義組件;

  • @Entry 則表示這是個入口組件;

  • @State 表示組件中的狀態變量,此狀態變化會引起 UI 變更。

  • 自定義組件(@Component)
    可復用的 UI 單元,可組合其它組件,如上述被 @Component 裝飾的 struct Hello。

  • UI 描述
    聲明式的方式來描述 UI 的結構,如上述 build() 方法內部的代碼塊。

  • 內置組件
    框架中默認內置的基礎和布局組件,可直接被開發者調用,比如示例中的 Column、Text、Divider、Button。

  • 事件方法
    用于添加組件對事件的響應邏輯,統一通過事件方法進行設置,如跟隨在Button后面的onClick()。

  • 屬性方法
    用于組件屬性的配置,統一通過屬性方法進行設置,如fontSize()、width()、height()、color() 等,可通過鏈式調用的方式設置多項屬性。

組件狀態管理裝飾器和@Builder裝飾器

組件狀態管理裝飾器用來管理組件中的狀態,它們分別是:@State、@Prop、@Link。

  • @State裝飾的變量是組件內部的狀態數據,當這些狀態數據被修改時,將會調用所在組件的build方法進行UI刷新。
  • @Prop與@State有相同的語義,但初始化方式不同。@Prop裝飾的變量必須使用其父組件提供的@State變量進行初始化,允許組件內部修改@Prop變量,但更改不會通知給父組件,即@Prop屬于單向數據綁定。
  • @Link裝飾的變量可以和父組件的@State變量建立雙向數據綁定,需要注意的是:@Link變量不能在組件內部進行初始化。
  • @Builder裝飾的方法用于定義組件的聲明式UI描述,在一個自定義組件內快速生成多個布局內容。

@State、@Prop、@Link三者關系如圖

組件生命周期函數

自定義組件的生命周期函數用于通知用戶該自定義組件的生命周期,這些回調函數是私有的,在運行時由開發框架在特定的時間進行調用,不能從應用程序中手動調用這些回調函數。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163661.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163661.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163661.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

最新版靈沐V3.3微信資源類小程序源碼支持流量主

源碼簡介 最新版靈沐V3.3微信資源類小程序源碼支持流量主,一套不錯的流量主變現資源下載小程序,它支持在微信、QQ和抖音平臺上運行。這次更新主要集中在全局UI設計的升級,并依然注重資源下載和激勵視頻變現的功能。另外,還新增了…

VR模擬仿真技術為司法科普建設注入更多的智慧和力量

虛擬現實(VR)技術已經逐漸滲透到各個領域,包括司法領域,在法學院教學中,VR虛擬現實和web3d開發技術的興起,讓司法教育也突破傳統教授式、演練式的教學模式,通過VR特有的沉浸式展示特點,實現了真實法庭效果的…

【Sorted Set】Redis常用數據類型: ZSet [使用手冊]

個人簡介:Java領域新星創作者;阿里云技術博主、星級博主、專家博主;正在Java學習的路上摸爬滾打,記錄學習的過程~ 個人主頁:.29.的博客 學習社區:進去逛一逛~ 目錄 ⑤Redis Zset 操作命令匯總1. zadd 添加或…

【考研數據結構代碼題7】求一元多項式之和

題目:編寫一個算法,求一元多項式之和 考綱:一元多項式的表示與相加 題型:代碼填空或算法設計 難度:★★★ 參考代碼 typedef struct node{float coef;//系數int exp;//次數struct node *next; }polynode; polynode *…

5 分鐘,開發自己的 AI 文檔助手!手把手教程

大家好,我是魚皮。 幾個月前,我自己開發過一個 AI 文檔總結助手應用。給大家簡單演示一下,首先我上傳了一個文檔,定義 1 1 等于 3: 然后把文檔喂給 AI 文檔總結助手,再向它提問,然后 AI 就回答…

登陸頁面模板

簡單好看的登陸頁面 vue項目代碼 可忽略js部分 先來個效果圖 <template><div class"login"><div class"content"><p >賬戶密碼登錄</p><div class"unit"><label class"label">用戶名</…

Hadoop學習總結(MapReduce的數據去重)

現在假設有兩個數據文件 file1.txtfile2.txt2018-3-1 a 2018-3-2 b 2018-3-3 c 2018-3-4 d 2018-3-5 a 2018-3-6 b 2018-3-7 c 2018-3-3 c2018-3-1 b 2018-3-2 a 2018-3-3 b 2018-3-4 d 2018-3-5 a 2018-3-6 c 2018-3-7 d 2018-3-3 c 上述文件 file1.txt 本身包含重復數據&…

匯編-PROTO聲明過程

64位匯編 64 模式中&#xff0c;PROTO 偽指令指定程序的外部過程&#xff0c;示例如下&#xff1a; ExitProcess PROTO ;指定外部過程&#xff0c;不需要參數.code main PROCmov ebx, 0FFFFFFFFh mov ecx,0 ;結束程序call ExitProcess ;調用外部過程main ENDP END 32位…

手把手云開發小程序-(四)-uniclould增刪改查業務開發

一&#xff0c;導入uView 在開發小程序的時候&#xff0c;我習慣使用uView這個ui庫。主要是直接用當然比自己寫省時間。 它的官網&#xff1a;uView - 多平臺快速開發的UI框架 - uni-app UI框架 (gitee.io) 導入&#xff1a; npm install uview-ui2.0.31然后按照官網進行配…

UltraCompare 23 for Mac文件對比工具

UltraCompare是一款功能強大的文件比較和合并工具&#xff0c; 以下是它的特色介紹&#xff1a; 多種文件格式支持&#xff1a;UltraCompare支持比較和合并多種文件格式&#xff0c;包括文本文件、二進制文件、office文檔、PDF文件等。 文件差異高亮顯示&#xff1a;UltraComp…

內測分發平臺的合作生態和生態效應如何

大家好&#xff0c;我是咕嚕-凱撒&#xff0c;隨著移動互聯網和智能設備的快速發展&#xff0c;越來越多的開發者和企業開始關注產品的質量和體驗。而內測分發平臺則成為了一種重要的工具&#xff0c;能夠幫助他們更好地測試、優化和推廣產品。在此過程中&#xff0c;內測分發平…

特殊企業信息輕松查詢:特殊企業基本信息查詢API的實用性探討

引言 在當今數字化時代&#xff0c;企業管理和決策往往取決于有效獲取和分析關鍵信息。對于特殊企業&#xff0c;如香港公司、社會組織、律所、事業單位、基金會和新機構&#xff0c;獲取準確、及時的基本信息至關重要。在這個背景下&#xff0c;特殊企業基本信息查詢API正逐漸…

〔004〕虛幻 UE5 像素流部署

? 目錄 ? 啟用像素流插件? 打包項目? 下載環境包? 手動下載? 安裝信令服務器環境? 啟動信令服務器? 設置啟動參數? 啟動程序? 網頁運行? 開啟觸控界面? 啟用像素流插件 打開虛幻啟動程序,選擇 編輯 后點擊 插件在插件列表中搜索 pixel streaming 關鍵字,勾選后重…

springcloud宿舍管理系統源碼

開發技術&#xff1a; jdk1.8&#xff0c;mysql5.7&#xff0c;idea&#xff0c;vscode springcloud springboot mybatis vue elementui 功能介紹&#xff1a; 用戶端&#xff1a; 登錄注冊 首頁展示輪播&#xff0c;公告&#xff0c;報修&#xff0c;晚歸登記&#xff0…

提升抖音小店服務分:優化策略與實操指南

抖音小店服務分是抖音平臺為評估和提升小店服務質量而設立的一項指標。它通過對小店在訂單管理、售后服務、物流管理等多個方面的表現進行評估和計算&#xff0c;為小店提供一個可衡量的服務質量指標。提高抖音小店服務分數對于增加用戶信任度、提升銷售額和增加曝光度都非常重…

第十七章 Java鏈接數據庫

目錄 1.登錄MySQL 2.創建庫和表 3.使用Java命令查詢數據庫操作 4.右擊——點擊“Build Path”——選擇第四個——找到包的位置——導入成功 一、創建java項目 1.注冊驅動 2.獲取鏈接 3.獲取statment對象 4.執行sql語句返回結果集 5.遍歷結果集 6.關閉連接釋放資源 封裝…

opencv-python比較圖像差異性方法

OpenCV-Python提供了幾種比較兩幅圖像差異的函數&#xff0c;主要有以下幾種&#xff1a; 1.cv2.absdiff()&#xff1a;計算兩幅圖像的差異&#xff0c;并返回差異圖像。使用該函數時&#xff0c;需要先將兩幅圖像轉換為相同的大小和類型。 diff cv2.absdiff(image1, image2…

Linux:設置Ubuntu的root用戶密碼

執行以下命令&#xff1a; 給root用戶設置密碼 sudo passwd 輸入兩次密碼 切換root su root 退出root用戶 exit

windows根據已有的安卓簽名文件獲取MD5簽名

windows根據已有的安卓簽名文件獲取MD5簽名 0 現狀 uniapp 本機號碼一鍵登錄需要MD5的&#xff0c;現有的簽名文件但是只有SHA1和SHA256 查看SHA1和SHA256 keytool -list -v -keystore [你的.keystore文件]1 前提 已有生成簽名文件的環境 搭建Openssl環境&#xff0c;設置…

0基礎能不能轉行做網絡安全?網絡安全人才發展路線

最近有同學在后臺留言&#xff0c;0基礎怎么學網絡安全&#xff1f;0基礎可以轉行做網絡安全嗎&#xff1f;以前也碰到過類似的問題&#xff0c;想了想&#xff0c;今天簡單寫一下。 我的回答是先了解&#xff0c;再入行。 具體怎么做呢&#xff1f; 首先&#xff0c;你要確…