一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

harmony OS NEXT-雙向數(shù)據(jù)綁定MVVM以及$$語(yǔ)法糖介紹

程奕紅 ? 來(lái)源:jf_34770892 ? 作者:jf_34770892 ? 2025-04-29 16:52 ? 次閱讀

# 鴻蒙Harmony-雙向數(shù)據(jù)綁定MVVM以及$$語(yǔ)法糖介紹

## 1.1 雙向數(shù)據(jù)綁定概念

在鴻蒙(HarmonyOS)應(yīng)用開(kāi)發(fā)中,雙向數(shù)據(jù)改變(或雙向數(shù)據(jù)綁定)是一種讓數(shù)據(jù)·模型和UI組件之間保持同步的機(jī)制,當(dāng)數(shù)據(jù)發(fā)生變化時(shí),UI自動(dòng)更新;反之,當(dāng)用于通過(guò)UI代碼操作修改數(shù)據(jù)時(shí),數(shù)據(jù)模型也會(huì)同步更新,這種機(jī)制簡(jiǎn)化了開(kāi)發(fā),減少了手動(dòng)DOM或UI組件的代碼量,舉個(gè)簡(jiǎn)單的例子,比如輸入框和變量的綁定,用戶(hù)輸入變量更新,變量在其他地方修改時(shí)輸入框的內(nèi)容也發(fā)生變化

## 1.2雙向數(shù)據(jù)綁定步驟

1. @State裝飾器修飾數(shù)據(jù)
2. 通過(guò)@onchange事件去收集改變的值,并將新值賦值給原來(lái)變量,達(dá)到數(shù)據(jù)改變

![image-20250204215640443](https://i-blog.csdnimg.cn/img_convert/d21ea6a6e4aacffd3ba7182adcaf41ee.png)

## 1.3案例演示

* 代碼演示

```ts
@Entry
@Component
struct Test1 {
@State userName: string = '小程神'

build() {
Column({ space: 20 }) {
Text('通過(guò)onChange收集inputValue')
TextInput()
.border({
color: Color.Black,
width: 1
})
.onChange((value) => {
this.userName = value

})
Text('展示inputvalue')
TextInput({ text: this.userName })
.border({
width: 1,
color: Color.Black
})
}.height('100%')
.width('100%')
.padding(20)
}
}
```

* 效果展示

![img](https://i-blog.csdnimg.cn/img_convert/b88e33b8fbca425604ba8a375da3500e.gif)

* 總結(jié)
1. 數(shù)據(jù)發(fā)生變化 綁定text的值 –>視圖產(chǎn)生更新
2. 視圖產(chǎn)生事件 onChange事件 –>數(shù)據(jù)發(fā)生變化

## 1.4MVVM:$$語(yǔ)法糖

> 通過(guò)上述的onChange事件改變數(shù)據(jù),其實(shí)還有更為簡(jiǎn)便的一種方式可以實(shí)現(xiàn)雙向數(shù)據(jù)綁定

官方文檔上提供了以下組件實(shí)現(xiàn)雙向數(shù)據(jù)綁定的快捷方法

![image-20250204220418730](https://i-blog.csdnimg.cn/img_convert/6e65a77626dcd769feb2bbbbd572ac7e.png)

### 1.4.1案例演示

1. textInput演示

* 代碼展示

```ts
@Entry
@Component
struct Test2 {
@State message: string = 'Hello World';

build() {
Column({ space: 10 }) {
Text(this.message)
TextInput({ text: $$this.message })
Button('改變數(shù)據(jù)')
.onClick(() => {
this.message = '我的小貓暴脾氣'
})


}.width('100%')
.height('100%')
.padding(20)
}
}
```

* 效果展示

![img](https://i-blog.csdnimg.cn/img_convert/9af5d8ce2908e282801923739c5ef358.gif)

2. checkBox展示

* 代碼展示

```ts
Text(this.ischecked+'')
Checkbox()
.select($$this.ischecked)
```

* 效果展示

![img](https://i-blog.csdnimg.cn/img_convert/2472572ce8a6403fd6b4c450d5d33d53.gif)

3. Toggle展示

* 代碼展示

```
Text(this.isOn + '')
Toggle({
type: ToggleType.Switch,
isOn: $$this.isOn
})
```

* 案例演示

![img](https://i-blog.csdnimg.cn/img_convert/4023eb199737b45a6456cc7bf1332e17.gif)

4. 時(shí)間選擇器展示

* 代碼展示

```ts
Text(this.date.toDateString())
DatePicker({
selected:$$this.date
})
```

* 效果演示

![img](https://i-blog.csdnimg.cn/img_convert/09a3e7d999def616794b3f9bfe78270b.gif)

5.Select展示

* 代碼展示

```ts
Text('mySelect' + this.select)
Select([
{ value: 'vip' },
{ value: '綠鉆' },
{ value: '黃鉆' }
])
.value($$this.select)

```

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)綁定
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6135
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2469

    瀏覽量

    43642
  • Harmony
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    2852
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    幾種實(shí)現(xiàn)vue的數(shù)據(jù)雙向綁定的方法介紹

    vue的數(shù)據(jù)雙向綁定的實(shí)現(xiàn)
    發(fā)表于 07-29 08:33

    微信小程序數(shù)據(jù)雙向綁定

    微信小程序數(shù)據(jù)雙向綁定,了解小程序中.js文件中鉤子函數(shù):在加載小程序的時(shí)候首先調(diào)用onLoad()函數(shù),緊接著調(diào)用onShow函數(shù)來(lái)進(jìn)行頁(yè)面展示,最后調(diào)用OnReady
    發(fā)表于 07-09 06:15

    什么是雙向數(shù)據(jù)綁定

    什么是雙向數(shù)據(jù)綁定?什么是Object.definePropety?
    發(fā)表于 10-25 07:21

    AWTK-MVVM是什么?其功能有哪些

    AWTK-MVVM是一套為AWTK用C語(yǔ)言開(kāi)發(fā),并支持各種腳本語(yǔ)言的MVVM框架,實(shí)現(xiàn)了數(shù)據(jù)綁定、命令綁定和窗口導(dǎo)航等基本功能,使用AWTK
    發(fā)表于 12-15 06:07

    淺談javascript技術(shù)的雙向數(shù)據(jù)綁定

    近幾年前端技術(shù)棧真是發(fā)展的太迅速了,從以前的針對(duì)dom操作的框架如jquery,ext.js等框架逐步過(guò)渡到當(dāng)前的mvvm模式,讓前端開(kāi)發(fā)者將注意力從dom操作逐漸解脫出來(lái),專(zhuān)注于邏輯的實(shí)現(xiàn),個(gè)人認(rèn)為開(kāi)發(fā)效率至少提升了1倍,mvvm模式的一個(gè)核心便是
    發(fā)表于 10-29 11:49 ?4371次閱讀

    MVC、MVP與MVVM的異同介紹

    View和ViewModel內(nèi)部通過(guò)一個(gè)Binder進(jìn)行事件交互,該Binder通過(guò)雙向綁定將View與ViewModel中與對(duì)于數(shù)據(jù)操作的部分鏈接,當(dāng)對(duì)應(yīng)數(shù)據(jù)由更新時(shí)同樣會(huì)自動(dòng)地反饋
    的頭像 發(fā)表于 06-22 15:34 ?4788次閱讀

    華為認(rèn)為Harmony OS成熟需要5到10年

    上個(gè)月,華為宣布了自主研發(fā)的操作系統(tǒng)Harmony OS(Hongmeng OS)。幾天前,華為在英國(guó)倫敦舉行了一次媒體活動(dòng),并討論了其在該系統(tǒng)上的計(jì)劃。Harmony
    的頭像 發(fā)表于 12-23 11:35 ?1633次閱讀

    harmony?os?2.0報(bào)名入口 如何報(bào)名harmonyos2.0報(bào)名?

    華為HarmonyOS2.0公測(cè)怎么申請(qǐng)?如何報(bào)名harmony os 2.0報(bào)名?harmony os 2.0報(bào)名入口在哪里?本文就此問(wèn)題進(jìn)行解釋。 在第一輪的公測(cè)里面,華為共有19
    的頭像 發(fā)表于 06-08 12:10 ?5306次閱讀

    美的是首批支持 Harmony OS 的家電企業(yè)之一

    據(jù)美的官微消息,搭載 HarmonyOS 的美的產(chǎn)品今天雙十一上市,據(jù)悉,美的是首批支持 Harmony OS 的家電企業(yè)之一。
    的頭像 發(fā)表于 11-11 15:05 ?3788次閱讀

    OpenHarmony生態(tài)論壇:關(guān)于開(kāi)源Harmony OS教育行業(yè)發(fā)行版介紹

    OpenHarmony生態(tài)論壇:關(guān)于開(kāi)源Harmony OS教育行業(yè)發(fā)行版,深度賦能智能硬件行業(yè)
    的頭像 發(fā)表于 04-25 15:19 ?1172次閱讀
    OpenHarmony生態(tài)論壇:關(guān)于開(kāi)源<b class='flag-5'>Harmony</b> <b class='flag-5'>OS</b>教育行業(yè)發(fā)行版<b class='flag-5'>介紹</b>

    Harmony OS網(wǎng)絡(luò)編程實(shí)驗(yàn)指南

    Harmony OS 網(wǎng)絡(luò)編程 實(shí)驗(yàn)指南,十分有用的入門(mén)實(shí)驗(yàn)指南。
    發(fā)表于 10-24 11:42 ?0次下載

    Kotlin的語(yǔ)法解析

    最近又開(kāi)始要寫(xiě)一些客戶(hù)端代碼,現(xiàn)在項(xiàng)目都是使用Kotlin,但是之前沒(méi)有系統(tǒng)的學(xué)習(xí)過(guò)Kotlin,對(duì)于Kotlin的一些語(yǔ)法還不熟悉,所以寫(xiě)篇文章總結(jié)下。
    的頭像 發(fā)表于 04-19 10:21 ?1323次閱讀

    harmony OS NEXT-基本介紹及DevcoStudiop基本使用

    #鴻蒙基本介紹及DevcoStudiop基本使用 1.認(rèn)識(shí)DevcoStudiop工作區(qū) 1.1認(rèn)識(shí)工作區(qū) 開(kāi)發(fā)節(jié)奏: 通過(guò)左側(cè)目錄找到對(duì)應(yīng)的應(yīng)用文件,在編輯區(qū)進(jìn)行代碼編寫(xiě),在右側(cè)看預(yù)覽效果 快捷鍵
    的頭像 發(fā)表于 03-26 16:48 ?255次閱讀
    <b class='flag-5'>harmony</b> <b class='flag-5'>OS</b> <b class='flag-5'>NEXT-</b>基本<b class='flag-5'>介紹</b>及DevcoStudiop基本使用

    harmony OS NEXT-通過(guò)用戶(hù)首選項(xiàng)實(shí)現(xiàn)數(shù)據(jù)持久化

    # 鴻蒙通過(guò)用戶(hù)首選項(xiàng)實(shí)現(xiàn)數(shù)據(jù)持久化 ## 1.1 場(chǎng)景介紹 用戶(hù)首選項(xiàng)為應(yīng)用提供Key-Value鍵值型的數(shù)據(jù)處理能力,支持應(yīng)用持久化輕量級(jí)數(shù)據(jù),并對(duì)其修改和查詢(xún)。當(dāng)用戶(hù)希望有一個(gè)全
    的頭像 發(fā)表于 04-29 16:38 ?99次閱讀

    harmony OS NEXT-評(píng)論功能小demo

    # 評(píng)論頁(yè)面小demo ## 效果展示 ![img](https://i-blog.csdnimg.cn/img_convert/f574e0b18325ee466938a3cb70530209.gif) ## 1.拆解組件,分層搭建 我們將整個(gè)評(píng)論頁(yè)面拆解為三個(gè)組件,分別是頭部導(dǎo)航,評(píng)論項(xiàng),回復(fù)三個(gè)部分,然后統(tǒng)一在index界面導(dǎo)入 ![image-20250304150652225](https://i-blog.csdnimg.cn/img_convert/2e234f0fe986014368d8d7f138577e6a.png) ## 2.頭部導(dǎo)航界面搭建 ![image-20250304151026576](https://i-blog.csdnimg.cn/img_convert/c876aa04a505a3c3203c03984a2e1504.png) ```ts @Preview @Component struct HmNavBar { ?// 屬性:是可以被傳
    的頭像 發(fā)表于 04-27 17:38 ?67次閱讀