javascript - angular2/4中,組織一個(gè)頁(yè)面的容器應(yīng)該是component還是module?
問(wèn)題描述
如題,今天按照官方說(shuō)法搭了ng的demo,但是有一點(diǎn)不明白。
在網(wǎng)上看有些人是把ngmodule作為一個(gè)容器來(lái)用(比如首頁(yè)為一個(gè)ngmodule,后臺(tái)登錄頁(yè)為一個(gè)ngmodule)。
然后通過(guò)這個(gè)module級(jí)別的容器組織頁(yè)面結(jié)構(gòu),和引入的組建和服務(wù)。
我就新建了個(gè)homemodule(里面聲明了一個(gè)組件,組件的selector是test1)組織首頁(yè)的內(nèi)容,然后在根module中imports了。
然后買根組件的bootstrap組件中寫(xiě)入了<test1></test1>為什么它告訴我聲明是錯(cuò)誤的?一定要在根組件中聲明這個(gè)組件嗎?那不是項(xiàng)目大起來(lái)會(huì)亂成一片
問(wèn)題解答
回答1:參考Angular中文文檔NG模塊部分。module中有AppModule這個(gè)主模塊,還有feature module等,當(dāng)項(xiàng)目復(fù)雜時(shí)feature module可以用來(lái)放多個(gè)具有相同特性的組件、指令、服務(wù)等。在使用feature module時(shí)要export出你declarations中需要暴露給主Module的內(nèi)容。主Module要import其他feature module
回答2:一句話概括:如果你的是小項(xiàng)目,別管那么多,一個(gè)根module解決所有;如果你是做中大型的項(xiàng)目,建議按業(yè)務(wù)模塊劃分module。
回答3:bootstrap 只需要在appModule中聲明就好了,剩下的可以用路由來(lái)做特性模塊
