#javascript

近來在寫一抽獎要用到輪盤的項目,發現當時只能用圖片難以修改長度和range的份數,後來想到用svg來實現,就用寫chart用到的 d3.js,完美解決。如圖:

alt text

下一次版本,會考慮加上九宮格抽獎以其他可以的方式抽獎,或者利用canvas做一個彩帶confftti的效果。






只要有人的地方就有恩怨,有恩怨就會有江湖,人就是江湖。— 金庸


這段時間前端最熱鬧的事莫過於阿当老師事件 ,關於一片關於前端2016的考察,文中主要觀點是,建議新人關於前端入門更多的是注重的是基礎,寫發jquery和css等,不要去追什麼reactjs和vuejs等新潮的技術,結果引來vuejs作者和同行中許多的各種爭議。

在知乎上,觀點幾乎是一邊倒的,這也無可厚非,這個開倒車的行為有點過失,邏輯存在 Major Conflict

在這個爭議中,引起我的思考的,不是技術的對比,或者雙方論點論據的優越,而是對於前端的認知,一個心理的行為認知。

對於非科班出身的,當初進入編程行,莫過於前端與php的入門,這也是至今說php是最好語言的一個表述,因為當時入門的最容易的就是php+mysql+jquery這一套東西。對於當時只有pc的年代,另一套是java系列。

隨著手機ios和 andirod 以及多端的出現,必然出現更多複雜情況,慢慢出現前後端分離以應對,但是分離後,前端該怎樣了?以往權力是後端控制前端,只是當前端view層面,因為習慣MVC了,但是前端分離出來,在前端不斷完成自我人格的時候,必然同現要權的行為,從angular1開始,就體驗到在views拿到了control和data flow的權力,而且directive的創新概念影響後代的reactjs和vuejs以及ember等主流框架,可以說angular1有著開時代的影響,就如當年的yahoo的Mootools和Prototype。

至於現在前端主流reactjs和vuejs以及jquery之間的區別是什麼,我簡單解析下:

jquery可以說影響前端比較深遠的一個框架,是框架嗎?其實不是,準確是javascript的工具集,在這之前還有Mootools和Prototype等優勢工具集。 為什麼說jquery影響深遠,因為他將native javascript簡單歸納成易用易維護的dom操作,插件plugin易extend和開發,event以及交互上,以及樣式控制。對於當時來說,也存在很大爭議,對於寫習慣原生js的人來,就如今天之爭。

而對於現在初學者來說,怎麼學好reactjs和vuejs?一般入門者都喜歡站隊,其實不必然。因為reactjs和vuejs相似又各不同。

對於reactjs來說,可以說和jquery一樣相當影響,簡單來說,reactjs就如上文所說,現在前端框架是真是框架並不是工作集,例如:

  1. 獨立的人格。就如lifecircle生命周期的概念,生命周期就如人一樣,出生,成年,死亡和回收大自然,所以有componentWillMount, componentDidMount,componentWillUnmount 等生命周期階段.

  2. 生物信息流。對於state props來說,可以簡單講信息流,就是人一樣的身高,體重,以及dna,fingerprint一樣,就如人的生物信息流,那麼這些信息流會改變或不變嗎?其實不能說去量化這麼信息,reactjs只是記錄這個過程,就如你出生體重到死亡成灰都有一記錄值,就如性別一樣,你一樣可以改,但在更換性別前時就有一個記錄是什麼條件下改變的。

  3. 社交記錄。至於redux,又是一個什麼概念了?其實簡單來說,各個component之間社交行為紀錄,在沒有 redux,reactjs 會將props和state的變化各自記下,就如A借錢到B,B又把錢C,C要還錢還B,B再還給A,但有 redux時就可以,C還錢給B, B可設置action在收到C錢時dispatch直接還給A。而且 redux的數據是怎麼記錄的?,你可以想像就如圖書館,你每看一本書,就要去借入記一次,歸來記一次,就如會計帳記錄,衝正也是記錄,所有行為可以trace。

  4. 自我反復思考糾錯。至於virtrual dom又是什麼概念呢?因為javascript 的actural dom是一次渲染出來,以前開發時修過只是通過人工fresh才可看到,而virtrual dom只是在真正渲染前用diff算提交一个path的去更新view ,就如一个自我糾錯的行为一样。

以上也是vuejs2改版之後也具有的特性。

兩者有什麼不同?可以講都是人,可以講男女之別。

reactjs 就像男生一樣,想法多,得想到方方面面,但風氣就如農村的重男輕女,習慣繼承皇位。

vuejs 就像女生一樣,嬌小,思維直觀,template javascript style, 每個 componet 像 derivative 可自義聲明,有點女孩子富養的感覺。對於習慣MVC思維有一個好的幫助。

那 angular 4呢 angular 2開始 typescript 寫,入門門檻更高,也採用新時代特性,習慣 flowtype和強類型的前端有了一個更好的選擇。

江湖門派之爭,總有好勝之爭,這是好事。但想成為真正強者,還是知各家所長所短,不然到真正華山論劍之時,不學無術者自然是給淘汰。我的建議,潛力去研究,學其所長。








Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×