前言
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)枝江,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220我已經(jīng)在幾個(gè)項(xiàng)目中使用MVVM了一段時(shí)間,我真的很喜歡它的簡(jiǎn)單性。特別是,如果你像許多人一樣從MVC遷移,你只需要在你的架構(gòu)中增加一層ViewModel。如果您發(fā)現(xiàn)太多層級(jí)造成的復(fù)雜,這確實(shí)使事情變得更容易。
這是一個(gè)良好的開(kāi)端,但這種簡(jiǎn)單并不總是好的。在MVVM中,您將業(yè)務(wù)邏輯移出視圖控制器(VC),然后意識(shí)到它仍然很胖。視圖模型(VM)現(xiàn)在具有業(yè)務(wù)邏輯,但是展示數(shù)據(jù)(格式化)或路由如何?他們?nèi)匀槐焕г赩C中,我們需要將它們移出。
#示例流程
假設(shè)我們正在實(shí)現(xiàn)登陸頁(yè)面,如下所示。
##路由列表:
這看起來(lái)像是一個(gè)簡(jiǎn)單的頁(yè)面,可以使用帶有3個(gè)segues的故事板來(lái)實(shí)現(xiàn)。但請(qǐng)相信我,事實(shí)并非如此。例如,您通常會(huì)在登錄時(shí)打開(kāi)主屏幕。但在這種情況下,用戶的密碼可能已過(guò)期,您需要實(shí)施重定向到更改密碼屏幕。所以登錄路線變成:
這是故事板路由失敗的地方。它無(wú)法處理這種動(dòng)態(tài)情況。所以你通常做的是讓VC處理它:
func loginButtonTapped() { // Start network request... // Upon response: if viewModel.shouldChangePassword { performSegue(id: "ChangePasswordScreen", sender: nil) } else { performSegue(id: "HomeScreen", sender: nil) } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。