安裝就跳過了,一直點點就可以了
配置跳過,就自動下了點東西。
鴻蒙那個下載要12g個內存,大的有點嚇人。
里面跟idea沒區別
模擬器或者真機運行
真機要鴻蒙4.0,就可以實機調試
直接在手機里面跑,這個牛逼,華為手機厲害
開發語言是arkts,擴展優化語言ts
ts是js擴展,arkts擴展ts
arkts
聲明式ui
直接開搞,創建項目
onclick需要參數是事件,其余都感覺挺正常,能看懂
@State 相當于標記變量
有點像注解的這種東西,是裝飾器,用來裝飾類結構,方法,變量
css相當于定義成方法,自己傳參就可以了,該加哪些屬性,直接看方法就可以了,記不住,鼠標放上去。
struct就是類似于class
聲明式描述ui
內置組件:容器組件,基礎組件
容器組件:row,column?
基礎組件:自帶樣式的組件,text,button之類的
onclick 事件方法,這個很關鍵,上事件的。
@Entry
@Component
struct Index {@State message: string = '123'@State b1:number = 0;build() {Row() {Column() {Button('點我'+this.b1).backgroundColor('#360d').onClick(()=>{this.b1++})}.width('100%')}.height('100%')}
}
不懂直接現看就行,點擊show in api 就可以看方法的教學
?中間各個組件學習就跳過了,沒什么意思,純純浪費時間,明明可以看文檔就可以懂,到時候用再看就行了,水了那么久視頻。
直接快進到進階點的
渲染控制
if判斷,for循環
這?號什么意思,好像是可要可不要的意思,可以省略。
ForEach(arr: Array, //要遍歷的數據數組(item: any,index?: number) =>{},keyGenerator?: (item: any, index?: number): string => {}
}
圖片保存到resource下media文件夾中
遍歷顯示對象,以及部分格式
下面遍歷函數當時聽,看的時候有些懵逼,自己實際使用就懂了
應該是這個意思
foreach(自己要遍歷的對象,item:形容它的類型)=》回調函數{
}
class Item {name: stringimage: ResourceStrprice: numberdiscount: numberconstructor(name: string, image: ResourceStr, price: number, discount: number = 0) {this.name = namethis.image = imagethis.price = pricethis.discount = discount}
}
@Entry
@Component
struct _for{// 商品數據private items: Array<Item> = [new Item('華為Mate60', $r('app.media.1'), 6999, 500),new Item('MateBookProX', $r('app.media.2'), 13999),new Item('WatchGT4', $r('app.media.3'), 1438),new Item('FreeBuds Pro3', $r('app.media.4'), 1499),new Item('Mate X5', $r('app.media.5'), 12999)]build() {Column({space:10}){Row(){Text("商品").fontSize(30).backgroundColor('#360d').fontWeight(FontWeight.Bold).textAlign(TextAlign.Start)}
ForEach(this.items,(item:Item)=>{Row(){Image(item.image).width(100).margin({left:20})Column(){Text(item.name).fontSize(30)Text(item.price+"$").fontColor(Color.Red)}.margin({left:20})}.width("100%")
})}}
}
效果圖
因為不能滑動,為了滑動,所以為什么我們要用list容器
超出的東西,自動提供滾動的功能
想要改變方向listDirecction就可以改變水平還是垂直
代碼,遍歷的東西,一定要放在ListItem中,不然報錯
List({space:10}){ForEach(this.items,(item:Item)=>{ListItem(){Row(){Image(item.image).width(100).margin({left:20})Column(){Text(item.name).fontSize(30)Text(item.price+"$").fontColor(Color.Red)}.margin({left:20})}.width("90%").margin({top:20}).border({width:2,color:Color.Green})}})}
再次成功