這篇文章主要介紹“該不該把控制流v-for指令寫(xiě)入通用結(jié)構(gòu)組件中”,在日常操作中,相信很多人在該不該把控制流v-for指令寫(xiě)入通用結(jié)構(gòu)組件中問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”該不該把控制流v-for指令寫(xiě)入通用結(jié)構(gòu)組件中”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),藍(lán)田企業(yè)網(wǎng)站建設(shè),藍(lán)田品牌網(wǎng)站建設(shè),網(wǎng)站定制,藍(lán)田網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,藍(lán)田網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一個(gè)孤獨(dú)的子組件
當(dāng)嵌套開(kāi)始變多時(shí),如果我還想要保持整潔,我的默認(rèn)做法是將代碼提取到一個(gè)新組件中。
使用v-for和v-if,我們把指令中的所有東西都轉(zhuǎn)換成它自己的組件。
舉個(gè)例子來(lái)看看,我們從這個(gè)有嵌套的模板開(kāi)始
{{ title }}
{{ item.title }}
{{ item.description }}
接著,我們把 v-for 里面的內(nèi)容提取到一個(gè)新的組件中:
{{ item.title }}
{{ item.description }}
如果我們導(dǎo)入這個(gè)新組件,我們會(huì)看到它很好地?cái)[脫了所有嵌套:
{{ title }}
此示例中沒(méi)有太多的嵌套,所以單獨(dú)為一小部分內(nèi)容做一個(gè)組件,有點(diǎn)繁瑣。但是,如果我們有兩個(gè),三個(gè)或更多的嵌套級(jí)別,則此技巧可以消除嵌套結(jié)構(gòu)并讓代碼更易于理解。
但這里有一個(gè)問(wèn)題:為什么我們不把v-for指令也寫(xiě)入新的組件中?
我們應(yīng)該把控制流指令放入新的組件中嗎?
假設(shè),我們上面的 v-for 放到新的組件內(nèi),則我們會(huì)得到下面的結(jié)構(gòu):
這樣看上去,父組件確實(shí)清晰很多。但不幸的是,這種變向的把復(fù)雜度放到了子組件中:
{{ item.title }}
{{ item.description }}
哪種方式更好?
如果你最終的目的就是想減少嵌套數(shù)量,那么這個(gè)選擇肯定更糟糕。我們?cè)谧咏M件中添加了額外的嵌套級(jí)別,而沒(méi)有減少父組件中的嵌套級(jí)別。
通常,我會(huì)避免將諸如v-if和v-for之類(lèi)的控制流指令放在這樣的組件的根部,因?yàn)樗鼤?huì)影響可重用性。
如果只需要一個(gè)簡(jiǎn)單ListItem 該怎么辦?
假設(shè)使用v-if,如果要使用不同的邏輯在組件之間進(jìn)行切換,或者要使用完全不同的組件怎么辦?
將控制流指令寫(xiě)小最小通用結(jié)構(gòu)的組件中會(huì)限制我們的靈活性,而不會(huì)給我們帶來(lái)更多的便利性。因此,我傾向于將控制流指令留在這樣的小組件之外。我還嘗試避免將它們放在組件的根部。
一旦你深入了解“底層”的情況,此問(wèn)題及其解決方案就會(huì)顯得更加有優(yōu)勢(shì)。
到此,關(guān)于“該不該把控制流v-for指令寫(xiě)入通用結(jié)構(gòu)組件中”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!