謝邀

JS框架,我認為大體上可以分為兩種。一種是類似jQuery/ d3那樣的,通過修改html的DOM結構來渲染UI的庫。

還有一種則是類似於AngularJS/ReactJS 那樣的,採用MVC分層的,通過Model來渲染View UI框架。

注意這裡的區別,jQuery類似於庫,而Angular類似於框架,這也意味著使用Angular要嚴格按照框架規定來寫。但Vue雖然也是MVC渲染,但更像一個庫,所以明顯要比Angular上手要容易。

jQuery從後臺返回的數據要渲染到前端上需要通過手動更新DOM,性能比較好。但開發效率和代碼規範不如NG/ReactJS,但是手動改DOM一般比MVC渲染的性能好。目前來說基於jQuery的前端組件庫最多,而Angular/React的還比較少。

下面列舉幾個比較知名的前端UI庫

Bootstrap

這個基本上就不用說明瞭,一個前端CSS框架,基於jQuery,但是很多複雜的控制項沒有,像 datagrid/ dialog/ tree/ charts之類的,不過基於bootstrap的組件庫也比較多,可以自己去找找。

Foundation

類似Bootstrap https://foundation.zurb.com/

Semantic UI

前端框架,不過組件也比較少

https://github.com/Semantic-Org/Semantic-UIKendo UI

kendoui.com 傳統的各種datagrid/charts/dialog庫,分開源和商業兩種版本,使用比較複雜的控制項要購買商業版。

Materialize

另一個前端響應式Web框架 https://github.com/Dogfalo/materialize

jQuery Mobile

http://demos.jquerymobile.com/1.4.5/slider/

jQuery Mobile一些組件庫(而非jquery的移動版本)。jQuery Mobile是一款基於HTML5的用戶界面系統,

Sencha Touch

以前叫Ext,注意它不是基於jQuery的,是基於另外一種元素選擇器構建起來的前端組件庫。

另外還有一些 Amazeui/ jQuery EasyUI/ materialize/ weex 之類的,有興趣也可以研究一下。


前端理論課-移動端開發

{!-- PGC_VIDEO:{"status": 0, "thumb_height": 360, "thumb_url": "39f6000366de01be4435", "vname": "u524du7aefu7406u8bbau8bfe-u5b66u4e60u65b9u6cd5 (3).mp4", "vid": "6c7b6d7c332d4e24ba6707b0ed176212", "sp": "toutiao", "vposter": "http://p0.pstatp.com/origin/39f6000366de01be4435", "external_covers": [{"mimetype": "webp", "source": "dynpost", "thumb_height": 360, "thumb_url": "39720003261ae039f339", "thumb_width": 640}], "thumb_width": 640, "vu": "6c7b6d7c332d4e24ba6707b0ed176212", "duration": 198, "neardup_id": 8462628866106624324, "hash_id": 8462628866106624324, "md5": "68aa165f910b3cc6600aad71d37193e1", "video_size": {"high": {"h": 480, "subjective_score": 0, "w": 854, "file_size": 3147080}, "ultra": {"h": 720, "subjective_score": 0, "w": 1280, "file_size": 4538267}, "normal": {"h": 360, "subjective_score": 0, "w": 640, "file_size": 2680672}}} --}


能夠無縫的對接jquery的恐怕只有zepto.js 了

zepto.js相比jquery更小,但是無論是dom選擇器還是函數方法幾乎95%以上相同,所以這種情況下,zepto.js是最好的選擇了

並且你不需要更多的適應,和學習成本


強烈推薦ionic。基於Angular和TypeScript,集成各種cordova插件,即可用來開發cordova應用,又可以開發web app。最酷的是自動適配各平臺原生樣式。至於什麼sencha touch,jquery mobile之類的就別考慮了,太老了。ionic是目前最活躍的跨平臺框架之一。TypeScript帶來的生產力提高不是一點半點。

其實不管angular,React還是vue,你做界面的話還得找個ui框架,iojic好處是都集成好了,分分鐘搞個原型出來。


「純移動端」也要看你幹嘛用,不同應用適合用不同的庫/框架。

例如,如果你的應用主要是做數據錄入和呈現,例如erp之類,用ng或vue之類是不二之選,你要用jq自己操作這些數據,做做自己就暈了。

但要做小遊戲之類的需要很多dom操作的,用ng之類的數據框架就力不從心了。

所以說,任何東西沒有最好、放之四海而皆準的,只有最合適的。


純移動端的開發要比pc端方便很多。至少不用顧慮各種瀏覽器的兼容性問題。當然,Safari的兼容性仍然有點問題。

我認為一個包容所有的框架是不現實的。我知道很多人推薦ionic這種使用方便的東西。但是我並不推薦。甚至不推薦任何額外添加自定義標籤的框架({{}}映射模型除外)。


我覺得會有人說出一大堆框架,也不管是不是和題目吻合。

目前來說為了移動端而生的框架也就那麼幾個,其他的有個更適合他們的名字,叫做響應式頁面框架。比如著名的bootstrap。

如果你是要做app或者web頁面這兩類,單頁應用的框架可以選擇avr三大框架,vue和react目前最為應用廣泛。

如果想操作dom,讓app更接近於原生性能的話可以用mui。H5+新api基本很多原生的功能都實現了。


首先考慮項目大小,跟複雜程度,然後在選擇一個適合項目的框架並且分析它們的特性優點

如何項目不大,一般的建議用輕巧的vue,

複雜的模塊化建議用react。

angular太中不建議輕易使用


推薦閱讀:
相關文章