欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:職場(chǎng)和發(fā)展 鴻蒙面試心得

柚子快報(bào)激活碼778899分享:職場(chǎng)和發(fā)展 鴻蒙面試心得

http://yzkb.51969.com/

自疫情過后,java和web前端都進(jìn)入了冰河時(shí)代。年齡、薪資、學(xué)歷都成了找工作路上躲不開的門檻。

年齡太大pass

薪資要高了pass

學(xué)歷大專pass

好多好多pass

找工作的路上明明陽(yáng)關(guān)普照,卻有一種凄凄慘慘戚戚說(shuō)不清道不明的“優(yōu)雅”意境。

如何破局?

鴻蒙!?

好了廢話不多說(shuō),下面進(jìn)入正題

先聊一聊怎么學(xué)習(xí)鴻蒙

一、不建議報(bào)班

目前有好多培訓(xùn)班,對(duì)有web開發(fā)經(jīng)驗(yàn)的人來(lái)說(shuō),我個(gè)人不建議報(bào)班。

要花費(fèi)大量的時(shí)間

花費(fèi)一定的money,現(xiàn)在錢不好賺能省則省吧

?那么我們?nèi)绾伍_始學(xué)習(xí)鴻蒙呢?

二 、B站

現(xiàn)在B站里面黑馬、千峰、尚硅谷已經(jīng)出了多期基礎(chǔ)視頻,可以先看看這些視頻,然后跟著老師把項(xiàng)目寫一下,大概花兩周的時(shí)間吧。

這樣可以快速的了解什么是鴻蒙,鴻蒙做了哪些事情,為以后的自己獨(dú)立學(xué)習(xí)奠定基礎(chǔ)

三、鴻蒙官方API?

HarmonyOS應(yīng)用-HarmonyOS開發(fā)者-華為開發(fā)者聯(lián)盟

文檔中心

或者

鴻蒙 ArkTS 應(yīng)用快速上手手冊(cè)_w3cschool

如果兄弟們時(shí)間緊張可以先看下面這幾個(gè)模塊,一般看完面試就夠用了

項(xiàng)目結(jié)構(gòu)?

?

UI

如果ts薄弱可以看看這個(gè)

有框架的認(rèn)知

有ts處理邏輯

有UI展示頁(yè)面

這樣一個(gè)APP大概就全了,如果兄弟們還有精力,那肯定是api研究的越全面越好啦

面試?

如果兄弟們這些都學(xué)完了,那么可以進(jìn)行面試了:

需要注意的是面試分線下面試和線上面試

線下面試

如果是線下面試那兄弟們要注意了,可能要現(xiàn)場(chǎng)寫代碼,所以我建議先學(xué)完了我上面說(shuō)的再去面試。如果寫不出來(lái)白白浪費(fèi)了一次機(jī)會(huì)。

不過線下寫代碼也不要擔(dān)心,一般都是基礎(chǔ)布局,在固定的時(shí)間內(nèi)完成就行。

我先說(shuō)一下我線下面試時(shí)需要注意的事項(xiàng):

1.?如果大家習(xí)慣鍵盤和鼠標(biāo)的話最好自己備上。

2.?面試官的需求文檔一定要先看懂了,有全局的把控再開始寫代碼,不懂就問。

3.?得分點(diǎn)一定要清楚,而且都要實(shí)現(xiàn)

具體有哪些得分點(diǎn),我給兄弟們舉幾個(gè)我在面試中遇到的

1.? 用到組件化思想

2.?布局元素不能少,也就是和UI設(shè)計(jì)高度保真

3.?一些類型最好定義成枚舉

4.?顏色變量定義到這里

5.?http請(qǐng)求的封裝

6.?列表盡量用LazyForEach提升性能

?線上面試

?我這里總結(jié)了一些:

1. Module類型

分為ability類型和Library類型

ability類型(重點(diǎn)知道什么是HAP)

用于實(shí)現(xiàn)應(yīng)用的功能和特性。每一個(gè)Ability類型的Module編譯后,會(huì)生成一個(gè)以.hap為后綴的文件,我們稱其為HAP(Harmony Ability Package)包。HAP包可以獨(dú)立安裝和運(yùn)行,是應(yīng)用安裝的基本單位,一個(gè)應(yīng)用中可以包含一個(gè)或多個(gè)HAP包,具體包含如下兩種類型。

entry類型的Module:應(yīng)用的主模塊,包含應(yīng)用的入口界面、入口圖標(biāo)和主功能特性,編譯后生成entry類型的HAP。每一個(gè)應(yīng)用分發(fā)到同一類型的設(shè)備上的應(yīng)用程序包,只能包含唯一一個(gè)entry類型的HAP。feature類型的Module:應(yīng)用的動(dòng)態(tài)特性模塊,編譯后生成feature類型的HAP。一個(gè)應(yīng)用中可以包含一個(gè)或多個(gè)feature類型的HAP,也可以不包含。

Library類型的Module:?(HAR、HSP)

用于實(shí)現(xiàn)代碼和資源的共享。同一個(gè)Library類型的Module可以被其他的Module多次引用,合理地使用該類型的Module,能夠降低開發(fā)和維護(hù)成本。Library類型的Module分為Static和Shared兩種類型,編譯后會(huì)生成共享包。

Static Library:靜態(tài)共享庫(kù)。編譯后會(huì)生成一個(gè)以.har為后綴的文件,即靜態(tài)共享包HAR(Harmony Archive)。Shared Library:動(dòng)態(tài)共享庫(kù)。編譯后會(huì)生成一個(gè)以.hsp為后綴的文件,即動(dòng)態(tài)共享包HSP(Harmony Shared Package)。

?說(shuō)明

實(shí)際上,Shared Library編譯后除了會(huì)生成一個(gè).hsp文件,還會(huì)生成一個(gè).har文件。這個(gè).har文件中包含了HSP對(duì)外導(dǎo)出的接口,應(yīng)用中的其他模塊需要通過.har文件來(lái)引用HSP的功能。為了表述方便,我們通常認(rèn)為Shared Library編譯后生成HSP。

HAR與HSP兩種共享包的主要區(qū)別體現(xiàn)在:

共享包類型編譯和運(yùn)行方式發(fā)布和引用方式HARHAR中的代碼和資源跟隨使用方編譯,如果有多個(gè)使用方,它們的編譯產(chǎn)物中會(huì)存在多份相同拷貝。HAR除了支持應(yīng)用內(nèi)引用,還可以獨(dú)立打包發(fā)布,供其他應(yīng)用引用。HSPHSP中的代碼和資源可以獨(dú)立編譯,運(yùn)行時(shí)在一個(gè)進(jìn)程中代碼也只會(huì)存在一份。HSP一般隨應(yīng)用進(jìn)行打包,當(dāng)前只支持應(yīng)用內(nèi)引用,不支持獨(dú)立發(fā)布和跨應(yīng)用的引用。

?HAR和HSP在APP包中的形態(tài)示意圖

2.?Arkts相關(guān)(如果兄弟們精通ts可省略)

文檔中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/introduction-to-arkts-V5

自定義組件:@Component裝飾的UI單元,可以組合多個(gè)系統(tǒng)組件實(shí)現(xiàn)UI的復(fù)用,可以調(diào)用組件的生命周期。 頁(yè)面:即應(yīng)用的UI頁(yè)面??梢杂梢粋€(gè)或者多個(gè)自定義組件組成,@Entry裝飾的自定義組件為頁(yè)面的入口組件,即頁(yè)面的根節(jié)點(diǎn),一個(gè)頁(yè)面有且僅能有一個(gè)@Entry。只有被@Entry裝飾的組件才可以調(diào)用頁(yè)面的生命周期。

頁(yè)面生命周期,即被@Entry裝飾的組件生命周期,提供以下生命周期接口:

onPageShow:頁(yè)面每次顯示時(shí)觸發(fā)一次,包括路由過程、應(yīng)用進(jìn)入前臺(tái)等場(chǎng)景。 onPageHide:頁(yè)面每次隱藏時(shí)觸發(fā)一次,包括路由過程、應(yīng)用進(jìn)入后臺(tái)等場(chǎng)景。 onBackPress:當(dāng)用戶點(diǎn)擊返回按鈕時(shí)觸發(fā)。

組件生命周期,即一般用@Component裝飾的自定義組件的生命周期,提供以下生命周期接口:

aboutToAppear:組件即將出現(xiàn)時(shí)回調(diào)該接口,具體時(shí)機(jī)為在創(chuàng)建自定義組件的新實(shí)例后,在執(zhí)行其build()函數(shù)之前執(zhí)行。 onDidBuild:組件build()函數(shù)執(zhí)行完成之后回調(diào)該接口,不建議在onDidBuild函數(shù)中更改狀態(tài)變量、使用animateTo等功能,這可能會(huì)導(dǎo)致不穩(wěn)定的UI表現(xiàn)。 aboutToDisappear:aboutToDisappear函數(shù)在自定義組件析構(gòu)銷毀之前執(zhí)行。不允許在aboutToDisappear函數(shù)中改變狀態(tài)變量,特別是@Link變量的修改可能會(huì)導(dǎo)致應(yīng)用程序行為不穩(wěn)定。

生命周期流程如下圖所示,下圖展示的是被@Entry裝飾的組件(頁(yè)面)生命周期。

根據(jù)上面的流程圖,我們從自定義組件的初始創(chuàng)建、重新渲染和刪除來(lái)詳細(xì)解釋。

3.自定義組件的創(chuàng)建和渲染流程

自定義組件的創(chuàng)建:自定義組件的實(shí)例由ArkUI框架創(chuàng)建。 初始化自定義組件的成員變量:通過本地默認(rèn)值或者構(gòu)造方法傳遞參數(shù)來(lái)初始化自定義組件的成員變量,初始化順序?yàn)槌蓡T變量的定義順序。 如果開發(fā)者定義了aboutToAppear,則執(zhí)行aboutToAppear方法。 在首次渲染的時(shí)候,執(zhí)行build方法渲染系統(tǒng)組件,如果子組件為自定義組件,則創(chuàng)建自定義組件的實(shí)例。在首次渲染的過程中,框架會(huì)記錄狀態(tài)變量和組件的映射關(guān)系,當(dāng)狀態(tài)變量改變時(shí),驅(qū)動(dòng)其相關(guān)的組件刷新。 如果開發(fā)者定義了onDidBuild,則執(zhí)行onDidBuild方法。

4. 自定義組件重新渲染

當(dāng)事件句柄被觸發(fā)(比如設(shè)置了點(diǎn)擊事件,即觸發(fā)點(diǎn)擊事件)改變了狀態(tài)變量時(shí),或者LocalStorage / AppStorage中的屬性更改,并導(dǎo)致綁定的狀態(tài)變量更改其值時(shí):

框架觀察到了變化,將啟動(dòng)重新渲染。 根據(jù)框架持有的兩個(gè)map(自定義組件的創(chuàng)建和渲染流程中第4步),框架可以知道該狀態(tài)變量管理了哪些UI組件,以及這些UI組件對(duì)應(yīng)的更新函數(shù)。執(zhí)行這些UI組件的更新函數(shù),實(shí)現(xiàn)最小化更新。

5. 自定義組件的刪除

如果if組件的分支改變,或者ForEach循環(huán)渲染中數(shù)組的個(gè)數(shù)改變,組件將被刪除:

在刪除組件之前,將調(diào)用其aboutToDisappear生命周期函數(shù),標(biāo)記著該節(jié)點(diǎn)將要被銷毀。ArkUI的節(jié)點(diǎn)刪除機(jī)制是:后端節(jié)點(diǎn)直接從組件樹上摘下,后端節(jié)點(diǎn)被銷毀,對(duì)前端節(jié)點(diǎn)解引用,前端節(jié)點(diǎn)已經(jīng)沒有引用時(shí),將被JS虛擬機(jī)垃圾回收。 自定義組件和它的變量將被刪除,如果其有同步的變量,比如@Link、@Prop、@StorageLink,將從同步源上取消注冊(cè)。

不建議在生命周期aboutToDisappear內(nèi)使用async await,如果在生命周期的aboutToDisappear使用異步操作(Promise或者回調(diào)方法),自定義組件將被保留在Promise的閉包中,直到回調(diào)方法被執(zhí)行完,這個(gè)行為阻止了自定義組件的垃圾回收。

以下示例展示了生命周期的調(diào)用時(shí)機(jī):

// Index.ets

import router from '@ohos.router';

@Entry

@Component

struct MyComponent {

@State showChild: boolean = true;

@State btnColor:string = "#FF007DFF"

// 只有被@Entry裝飾的組件才可以調(diào)用頁(yè)面的生命周期

onPageShow() {

console.info('Index onPageShow');

}

// 只有被@Entry裝飾的組件才可以調(diào)用頁(yè)面的生命周期

onPageHide() {

console.info('Index onPageHide');

}

// 只有被@Entry裝飾的組件才可以調(diào)用頁(yè)面的生命周期

onBackPress() {

console.info('Index onBackPress');

this.btnColor ="#FFEE0606"

return true // 返回true表示頁(yè)面自己處理返回邏輯,不進(jìn)行頁(yè)面路由;返回false表示使用默認(rèn)的路由返回邏輯,不設(shè)置返回值按照f(shuō)alse處理

}

// 組件生命周期

aboutToAppear() {

console.info('MyComponent aboutToAppear');

}

// 組件生命周期

onDidBuild() {

console.info('MyComponent onDidBuild');

}

// 組件生命周期

aboutToDisappear() {

console.info('MyComponent aboutToDisappear');

}

build() {

Column() {

// this.showChild為true,創(chuàng)建Child子組件,執(zhí)行Child aboutToAppear

if (this.showChild) {

Child()

}

// this.showChild為false,刪除Child子組件,執(zhí)行Child aboutToDisappear

Button('delete Child')

.margin(20)

.backgroundColor(this.btnColor)

.onClick(() => {

this.showChild = false;

})

// push到page頁(yè)面,執(zhí)行onPageHide

Button('push to next page')

.onClick(() => {

router.pushUrl({ url: 'pages/page' });

})

}

}

}

@Component

struct Child {

@State title: string = 'Hello World';

// 組件生命周期

aboutToDisappear() {

console.info('[lifeCycle] Child aboutToDisappear')

}

// 組件生命周期

onDidBuild() {

console.info('[lifeCycle] Child onDidBuild');

}

// 組件生命周期

aboutToAppear() {

console.info('[lifeCycle] Child aboutToAppear')

}

build() {

Text(this.title).fontSize(50).margin(20).onClick(() => {

this.title = 'Hello ArkUI';

})

}

}

// page.ets

@Entry

@Component

struct page {

@State textColor: Color = Color.Black;

@State num: number = 0

onPageShow() {

this.num = 5

}

onPageHide() {

console.log("page onPageHide");

}

onBackPress() { // 不設(shè)置返回值按照f(shuō)alse處理

this.textColor = Color.Grey

this.num = 0

}

aboutToAppear() {

this.textColor = Color.Blue

}

build() {

Column() {

Text(`num 的值為:${this.num}`)

.fontSize(30)

.fontWeight(FontWeight.Bold)

.fontColor(this.textColor)

.margin(20)

.onClick(() => {

this.num += 5

})

}

.width('100%')

}

}

以上示例中,Index頁(yè)面包含兩個(gè)自定義組件,一個(gè)是被@Entry裝飾的MyComponent,也是頁(yè)面的入口組件,即頁(yè)面的根節(jié)點(diǎn);一個(gè)是Child,是MyComponent的子組件。只有@Entry裝飾的節(jié)點(diǎn)才可以使頁(yè)面級(jí)別的生命周期方法生效,因此在MyComponent中聲明當(dāng)前Index頁(yè)面的頁(yè)面生命周期函數(shù)(onPageShow / onPageHide / onBackPress)。MyComponent和其子組件Child分別聲明了各自的組件級(jí)別生命周期函數(shù)(aboutToAppear / onDidBuild/aboutToDisappear)。

應(yīng)用冷啟動(dòng)的初始化流程為:MyComponent aboutToAppear --> MyComponent build --> MyComponent onDidBuild--> Child aboutToAppear --> Child build --> Child onDidBuild --> Index onPageShow。 點(diǎn)擊“delete Child”,if綁定的this.showChild變成false,刪除Child組件,會(huì)執(zhí)行Child aboutToDisappear方法。 點(diǎn)擊“push to next page”,調(diào)用router.pushUrl接口,跳轉(zhuǎn)到另外一個(gè)頁(yè)面,當(dāng)前Index頁(yè)面隱藏,執(zhí)行頁(yè)面生命周期Index onPageHide。此處調(diào)用的是router.pushUrl接口,Index頁(yè)面被隱藏,并沒有銷毀,所以只調(diào)用onPageHide。跳轉(zhuǎn)到新頁(yè)面后,執(zhí)行初始化新頁(yè)面的生命周期的流程。 如果調(diào)用的是router.replaceUrl,則當(dāng)前Index頁(yè)面被銷毀,執(zhí)行的生命周期流程將變?yōu)椋篒ndex onPageHide --> MyComponent aboutToDisappear --> Child aboutToDisappear。上文已經(jīng)提到,組件的銷毀是從組件樹上直接摘下子樹,所以先調(diào)用父組件的aboutToDisappear,再調(diào)用子組件的aboutToDisappear,然后執(zhí)行初始化新頁(yè)面的生命周期流程。 點(diǎn)擊返回按鈕,觸發(fā)頁(yè)面生命周期Index onBackPress,且觸發(fā)返回一個(gè)頁(yè)面后會(huì)導(dǎo)致當(dāng)前Index頁(yè)面被銷毀。 最小化應(yīng)用或者應(yīng)用進(jìn)入后臺(tái),觸發(fā)Index onPageHide。當(dāng)前Index頁(yè)面沒有被銷毀,所以并不會(huì)執(zhí)行組件的aboutToDisappear。應(yīng)用回到前臺(tái),執(zhí)行Index onPageShow。 退出應(yīng)用,執(zhí)行Index onPageHide --> MyComponent aboutToDisappear --> Child aboutToDisappear。

6. 自定義組件的凍結(jié)功能(要了解)

定義組件處于非激活狀態(tài)時(shí),狀態(tài)變量將不響應(yīng)更新,即@Watch不會(huì)調(diào)用,狀態(tài)變量關(guān)聯(lián)的節(jié)點(diǎn)不會(huì)刷新。通過freezeWhenInactive屬性來(lái)決定是否使用凍結(jié)功能,不傳參數(shù)時(shí)默認(rèn)不使用。支持的場(chǎng)景有:頁(yè)面路由,TabContent,LazyforEach,Navigation。

說(shuō)明

從API version 11開始,支持自定義組件凍結(jié)功能。?

7.?常用裝飾器

@Builder裝飾器:自定義構(gòu)建函數(shù)

@BuilderParam裝飾器:引用@Builder函數(shù)

@Styles裝飾器:定義組件重用樣式

@Extend裝飾器:定義擴(kuò)展組件樣式?

8.?狀態(tài)管理

組件狀態(tài)

@State:@State裝飾的變量擁有其所屬組件的狀態(tài),可以作為其子組件單向和雙向同步的數(shù)據(jù)源。當(dāng)其數(shù)值改變時(shí),會(huì)引起相關(guān)組件的渲染刷新。 @Prop:@Prop裝飾的變量可以和父組件建立單向同步關(guān)系,@Prop裝飾的變量是可變的,但修改不會(huì)同步回父組件。 @Link:@Link裝飾的變量可以和父組件建立雙向同步關(guān)系,子組件中@Link裝飾變量的修改會(huì)同步給父組件中建立雙向數(shù)據(jù)綁定的數(shù)據(jù)源,父組件的更新也會(huì)同步給@Link裝飾的變量。 @Provide/@Consume:@Provide/@Consume裝飾的變量用于跨組件層級(jí)(多層組件)同步狀態(tài)變量,可以不需要通過參數(shù)命名機(jī)制傳遞,通過alias(別名)或者屬性名綁定。 @Observed:@Observed裝飾class,需要觀察多層嵌套場(chǎng)景的class需要被@Observed裝飾。單獨(dú)使用@Observed沒有任何作用,需要和@ObjectLink、@Prop聯(lián)用。 @ObjectLink:@ObjectLink裝飾的變量接收@Observed裝飾的class的實(shí)例,應(yīng)用于觀察多層嵌套場(chǎng)景,和父組件的數(shù)據(jù)源構(gòu)建雙向同步。

?應(yīng)用狀態(tài)

AppStorage是應(yīng)用程序中的一個(gè)特殊的單例LocalStorage對(duì)象,是應(yīng)用級(jí)的數(shù)據(jù)庫(kù),和進(jìn)程綁定,通過@StorageProp和@StorageLink裝飾器可以和組件聯(lián)動(dòng)。 AppStorage是應(yīng)用狀態(tài)的“中樞”,將需要與組件(UI)交互的數(shù)據(jù)存入AppStorage,比如持久化數(shù)據(jù)PersistentStorage和環(huán)境變量Environment。UI再通過AppStorage提供的裝飾器或者API接口,訪問這些數(shù)據(jù)。 框架還提供了LocalStorage,AppStorage是LocalStorage特殊的單例。LocalStorage是應(yīng)用程序聲明的應(yīng)用狀態(tài)的內(nèi)存“數(shù)據(jù)庫(kù)”,通常用于頁(yè)面級(jí)的狀態(tài)共享,通過@LocalStorageProp和@LocalStorageLink裝飾器可以和UI聯(lián)動(dòng)。

UI層面

布局種類:

線性布局 (Row/Column)層疊布局 (Stack)彈性布局 (Flex)相對(duì)布局 (RelativeContainer)柵格布局 (GridRow/GridCol)媒體查詢 (@ohos.mediaquery)創(chuàng)建列表 (List)創(chuàng)建網(wǎng)格 (Grid/GridItem)創(chuàng)建輪播 (Swiper)選項(xiàng)卡 (Tabs)

常用組件

按鈕 (Button)單選框 (Radio)切換按鈕 (Toggle)進(jìn)度條 (Progress)文本顯示 (Text/Span)文本輸入 (TextInput/TextArea)顯示圖片 (Image)自定義彈窗 (CustomDialog)視頻播放 (Video)自定義繪制 (XComponent)Native XComponent

?頁(yè)面路由

文檔中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-routing-V5

鴻蒙中嵌套web(有時(shí)間可以了解,只在一次面試中問到)

文檔中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ui-js-overview-V5

?最后在簡(jiǎn)歷層面我再淺說(shuō)幾點(diǎn):

1.?要寫上鴻蒙的經(jīng)驗(yàn),最少一年吧。為什么這么寫,兄弟們要明白,你第一關(guān)要過的是HR,至于面試官信不信那不重要,面試官關(guān)注的是技術(shù)點(diǎn)。

2.?在個(gè)人優(yōu)勢(shì)里要盡量寫鴻蒙相關(guān)的內(nèi)容,基礎(chǔ)也要寫。還是那句話HR要看。

3.?面試的時(shí)候會(huì)就是會(huì),不會(huì)就是不會(huì)。鴻蒙都是剛起步,不會(huì)不丟人,不要模棱兩可。

4.?面試的時(shí)候語(yǔ)速要慢,盡量表達(dá)清晰。要自己先相信自己才能讓面試官認(rèn)可自己

5.?大家都是打工的,都是為了一個(gè)共同的方向在努力,沒必要怯場(chǎng),說(shuō)話要平等大大方方的很重要

最后預(yù)祝大家面試成功!

如果兄弟們想一起學(xué)習(xí)鴻蒙,或者有面試相關(guān)的問題,簡(jiǎn)歷問題,或者想一起分享總結(jié)的??梢栽u(píng)論區(qū)留言,加個(gè)聯(lián)系方式,也可以私信弟弟。寒冬雖寒,但只要我們抱團(tuán)取暖,總有那一線生機(jī)。

柚子快報(bào)激活碼778899分享:職場(chǎng)和發(fā)展 鴻蒙面試心得

http://yzkb.51969.com/

參考文章

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19127844.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄