首先,它允許我們單獨編寫壹個html文件作為模板,這樣在編輯時就可以看到正確的語法高亮,這也是很多開發者喜歡它的原因(註:我認為這是因為人們越來越懶,越來越依賴IDE)。但是把妳的js和html代碼分開真的是個好主意嗎?在Vue.js的組件中,js和html自然是緊密耦合的。事實上,這些代碼放在壹個文件中更容易理解。在兩個文件之間來回切換上下文邏輯實際上讓開發人員更加煩惱。在vue的概念中,組件是vue.js的基本構建單元,而不是模板文件。vue.js的每個模板都有他的好朋友js陪著,分開他們太殘忍了。
其次,因為templateURL在運行時通過ajax加載模板,所以不需要為您構建單獨的文件。開發的時候很酷,但是在線部署的時候就麻煩了。在HTTP2.0大規模支持之前,HTTP請求的數量仍然是頁面加載最關鍵的因素。想象壹下,在妳的網站中,每個組件都使用壹個templateURL,那麽在頁面出來之前,妳可能需要加載幾十個HTTP請求。妳可能不知道,大多數瀏覽器對同壹個域名的並發請求數量都有限制。當超過這個限制時,頁面的初始呈現時間必須等待每個請求的返回。當然,有壹些工具可以幫助妳提前註冊所有的模板,但這只是構建的壹個步驟。其實這是大型網站的必然趨勢。
那麽,我們如何處理沒有templateURL的開發環境問題呢?
在js中拼接字符串是壹種不好的做法,使用
最後,Vue還可以懶洋洋地加載妳的組件,使用wabpack非常容易,雖然這是為了解決壹個問題——構建頁面文件太大,初始化慢,所以妳最好把它們分開。
拋棄模板,擁抱組件世界!!
以上是對原文的翻譯,不是完全的直譯。我自己的語言有很多,大概意思都差不多。原諒我文采不佳。
個人覺得vue的組件思路和React差不多,很多東西都放在js裏(這裏是。Vue文件)。這種做法就是把很多緊密耦合的東西管理在壹起,把原來分離的css、html、js合成在壹起。這和多年的做法很像,所以我同意於波的說法,好像前端在原地打轉,發展模式又回到了以前的樣子,只是螺旋上升了。
從最近的使用來看,這種組件方式非常方便,自然有助於妳解耦。當然,妳需要改變思維模式,不能用jquery的DOM模式。同時,它也不同於有角的。Vue不是框架,更像類庫,非常靈活。當然有些人會用很hack的方式寫代碼,可能會很痛苦。這需要妳自己註意。對於團隊來說,可以很好的積累各種組件,同時也更容易相互配合,就看團隊對Vue的理解了。