得益于會(huì )react,會(huì )點(diǎn)jQuery,也會(huì )點(diǎn)vue,研究了一下小程序,發(fā)現這東西有好處也有壞處。
小程序出來(lái)這么久,我才開(kāi)始第一次接觸它,一點(diǎn)也不覺(jué)得學(xué)習的晚,因為在我做了第一個(gè)小程序項目之后,發(fā)現這玩意沒(méi)什么難度,以后別再拿會(huì )做個(gè)小程序就出去裝逼了??!
也許每個(gè)開(kāi)發(fā)者都聽(tīng)說(shuō)說(shuō)小程序開(kāi)發(fā)速度快,產(chǎn)出高,經(jīng)過(guò)我自己的嘗試,發(fā)現了幾個(gè)關(guān)鍵點(diǎn)。
1、小程序有專(zhuān)門(mén)的開(kāi)發(fā)工具:微信開(kāi)發(fā)者工具
這套開(kāi)發(fā)工具集成了小程序所需要的開(kāi)發(fā)環(huán)境,好處就是不需要像開(kāi)發(fā)react或者vue一樣絞盡腦汁的配置webpack環(huán)境。缺點(diǎn)就是這個(gè)開(kāi)發(fā)工具不是那么好用,寫(xiě)記事本的感覺(jué)。
2、小程序有一套官方的基礎demo,下載修改即可使用:官方的基礎demo
我一開(kāi)始不知道如何搭建小程序的項目,然后找到了這個(gè)demo,下載源碼到本地,直接可以使用,不知道有沒(méi)有cli。之后開(kāi)發(fā)者需要把源代碼的路由刪掉,保留首頁(yè)路由,然后進(jìn)行開(kāi)發(fā)。
3、前面2步對于新手來(lái)說(shuō)只需要幾個(gè)小時(shí)就能完成,如果你有經(jīng)驗了,幾分鐘就能完成并且做開(kāi)發(fā)了。
4、小程序有一套自己的組件庫:小程序組件庫
組件庫給人的好處是可以滿(mǎn)足沒(méi)有設計師的開(kāi)發(fā)者的開(kāi)發(fā)需求,雖然我感覺(jué)這些組件寫(xiě)的不怎么好用,對于不追求的人來(lái)說(shuō)夠用了。
5、小程序有一套API:小程序API
相比于組件庫,我覺(jué)得API才是小程序最大的貢獻,借助了微信APP為載體的優(yōu)勢,封裝了很多好用的API,十八般武藝樣樣精通,而且文檔寫(xiě)的很不錯。
小程序再好,也有它的缺點(diǎn)。
1、小程序框架不容易理解
它的項目結構到?jīng)]什么問(wèn)題,問(wèn)題在于文件名的重寫(xiě),css => wxss,HTML => wxml,很別扭啊,因為我是個(gè)非常喜歡原生開(kāi)發(fā)的程序員,一時(shí)難以接受這種奇葩的文件,第一眼看到wxss我還在想這東西是不是防止跨站攻擊的玩意。
2、配置文件過(guò)多,學(xué)習比較費勁
到處都是json文件,看得挺難受。
3、js寫(xiě)的別扭
有個(gè)全局的App({}),還有個(gè)單個(gè)頁(yè)面的Page({}),你說(shuō)你是vue嗎?寫(xiě)起來(lái)的感覺(jué)又不是??吹胻his.setData({}),你說(shuō)你是react嗎?也不像啊。咦,好像有點(diǎn)jQuery的影子,wx.API用起來(lái)挺像jQuery,但又不全是。像原生嗎?不像,所有API都是用面向對象的方法封裝的,如果是函數式編程,寫(xiě)起來(lái)和原生js可以很好的銜接。
對于這個(gè)集合了4大天王高科技,但又沒(méi)有copy完全的東西,如果沒(méi)有四大天王的一點(diǎn)基礎,寫(xiě)起js還是挺費勁的,好在我全都有所了解,接受這些知識變得不那么難。
4、wxss沒(méi)什么可說(shuō)的,說(shuō)說(shuō)wxml,有人說(shuō)像react-native,有人說(shuō)像vue,有人說(shuō)像angular,要我說(shuō),看到這玩意,我都懷疑自己學(xué)的html是不是沒(méi)用了。
5、小程序還修改了很多原生的方法,比如事件函數,統一采用bind-event的寫(xiě)法。難受想哭,小程序好的地方在于有詳細的文檔描述了這些變化,壞的地方在于破壞了原生開(kāi)發(fā)者的習慣。
6、忘掉過(guò)去,才能學(xué)會(huì )小程序。
不是看別人寫(xiě)的教程博客,而是看官方文檔,因為文檔寫(xiě)的很清晰,所以我覺(jué)得寫(xiě)篇教程還不如寫(xiě)篇開(kāi)發(fā)心得更有作用。
如果你還沒(méi)玩過(guò)小程序,那么打開(kāi)官方文檔的大門(mén),按照官方教程模擬一遍,哦,你會(huì )發(fā)現它是如此的簡(jiǎn)單(項目搭建、環(huán)境配置),之后就是考驗誰(shuí)的js功底牛逼了。