做一個(gè)訂貨小程序(訂貨app制作)
前段時(shí)間,微信低調(diào)地推出了小程序「自定義組件」能力。這個(gè)能力允許開(kāi)發(fā)者,根據(jù)實(shí)際需要?jiǎng)?chuàng)建自定義組件,并在小程序中使用。
但官方的自定義組件能力,只能滿足一部分基礎(chǔ)需求。想要更得心應(yīng)手地開(kāi)發(fā)小程序,不妨試試恰年網(wǎng)絡(luò)(微信號(hào)qianiancom)今天推薦的 MinUI 框架。
這個(gè)框架與官方推出的自定義組件,到底有什么區(qū)別呢?先來(lái)看看開(kāi)發(fā)團(tuán)隊(duì)對(duì)它的介紹吧。
關(guān)注「知曉程序」微信公眾號(hào),回復(fù)「開(kāi)發(fā)」,獲取更多好用的小程序框架推薦。
是的,我們擼了一個(gè)新輪子——Min。
在這個(gè)前端高速發(fā)展的時(shí)代,擼輪子并不是目的,而是解決問(wèn)題的手段。
我們希望通過(guò)這個(gè)輪子,幫助像我們這樣的小程序開(kāi)發(fā)者,優(yōu)雅高效的搞定小程序中自定義組件的開(kāi)發(fā)和使用 這 2 個(gè)環(huán)節(jié),為開(kāi)發(fā)者賦能。
緣起
一切的初衷,都始于我們希望像下面這樣,優(yōu)雅的定義和使用組件:
但這并不容易。
首先,需要微信官方支持以自定義標(biāo)簽的方式來(lái)封裝組件。我們知道,在以往的小程序開(kāi)發(fā)中,這樣的方式是不支持的。
所喜,微信團(tuán)隊(duì)和我們的想法一致。
依托于同微信團(tuán)隊(duì)良好的溝通渠道,我們團(tuán)隊(duì)在第一時(shí)間獲得了自定義標(biāo)簽組件的內(nèi)測(cè)邀請(qǐng),并開(kāi)始著手將我們的想法落地。(知曉程序注:微信的自定義組件功能在 11 月 02 日開(kāi)始公測(cè)。)
其次,需要降低組件的開(kāi)發(fā)成本。
再次,需要便捷的在既有項(xiàng)目中安裝、應(yīng)用和更新組件。
展開(kāi)全文
基于這些需求和想法,我們搗鼓了一下。最終,就有了 Min 這個(gè)框架。
組件開(kāi)發(fā)
對(duì)于組件的開(kāi)發(fā),Min 提供了一整套的開(kāi)發(fā)方案,包括范式、工具化環(huán)境、Demo 預(yù)覽小程序、內(nèi)置化文檔、自動(dòng)編譯打包、一鍵式發(fā)布等能力。
1. 單文件策略
我們知道,小程序目前的工程化文件結(jié)構(gòu),是多文件形式(WXML、WXSS 和 JS)。
為了提供額外的能力封裝,Min 采用了單文件的方式(WXC 文件)來(lái)開(kāi)發(fā)一個(gè)組件,一個(gè)基于 Min 開(kāi)發(fā)的組件就是一個(gè) npm 包。
采用單文件的策略,既有對(duì)開(kāi)發(fā)者諸如 Vue 單文件開(kāi)發(fā)習(xí)慣的考慮,同時(shí)也基于在單文件的編譯環(huán)節(jié),我們可以做一些額外的賦能,例如對(duì) less、postcss 的支持。
同時(shí),框架中還加入對(duì)于全局變量、模板、引用路徑 Resolve 等支持;抑或通過(guò)插件的引入,提供其他的額外能力。
2. Min Cli
Min 提供了一套 Cli 工具,幫助開(kāi)發(fā)者快速創(chuàng)建、編譯、發(fā)布組件。通過(guò) $ npm -i -g @mindev/min-cli,就能獲得 Min 提供的一鍵式能力。
通過(guò) $ min init,可以快速的創(chuàng)建本地的組件開(kāi)發(fā)環(huán)境。這個(gè)組件開(kāi)發(fā)環(huán)境,就是一個(gè)組件的預(yù)覽小程序,可以通過(guò)微信開(kāi)發(fā)者工具便捷的查看組件的運(yùn)行情況。
通過(guò) $ min new *name(*name 是你的組件名)來(lái)新建一個(gè)組件。
通過(guò) $ min dev *name 來(lái)開(kāi)啟開(kāi)發(fā)模式:組件的最新改動(dòng),都會(huì)在微信開(kāi)發(fā)者工具中實(shí)時(shí)的刷新顯示。
通過(guò) $ min publish *name 來(lái)最終發(fā)布你的組件,發(fā)布后的組件即為一個(gè)隨時(shí)可用的 npm 包。
3. MinUI
同時(shí),我們還提供了一套小程序 UI 組件庫(kù),這也是我們團(tuán)隊(duì)在業(yè)務(wù)中使用的組件庫(kù)。
如何使用 MinUI?
對(duì)于組件的應(yīng)用,Min 提供了在原有的應(yīng)用項(xiàng)目中,一鍵式安裝、一鍵式更新組件的能力。
除了這些,MinUI 還提供了漸進(jìn)增強(qiáng)的諸如應(yīng)用全局變量、全局模板等能力支持。后續(xù)我們還將以插件化的方式,提供諸如代碼檢測(cè)、單測(cè)環(huán)境等能力支持。
1. 組件安裝
在既有應(yīng)用下,開(kāi)發(fā)者可以通過(guò) $min install *name 來(lái)安裝一個(gè)組件,組件默認(rèn)會(huì)安裝到項(xiàng)目工程的 packages/ 文件夾下。
安裝后的組件,即可以用小程序通用的方式在頁(yè)面中引入和使用了。
2. 組件更新
對(duì)于組件的更新,你可以使用 $ min update *name 來(lái)一鍵搞定。
3. 漸進(jìn)增強(qiáng)
Min 同時(shí)提供了一些應(yīng)用全局性的漸進(jìn)增強(qiáng)能力,以供開(kāi)發(fā)者選擇性使用。但這需要付出一點(diǎn)額外的成本。
前面提到,我們采用單文件 WXC 的方式來(lái)開(kāi)發(fā)一個(gè)組件,因?yàn)樵诰幾g環(huán)節(jié)可以做一些額外的事情,這里的「c」即為 component(組件)的首字母。
同理,Min 還提供了 WXP 和 WXA,來(lái)為 page 和 app 提供一些額外的賦能。如果您已經(jīng)在本地嘗試基于 Min 的開(kāi)發(fā),就會(huì)發(fā)現(xiàn)本地的組件開(kāi)發(fā)環(huán)境這個(gè)小程序,就是基于 WXP 和 WXA 來(lái)實(shí)現(xiàn)的。
最后的話
我們希望 Min 能幫助你快速的解決組件開(kāi)發(fā)中的痛點(diǎn),我們也希望這個(gè)小 Baby 能夠在社區(qū)的幫助中快速成長(zhǎng),所以我們將 Min 進(jìn)行了開(kāi)源。
希望有更多的同學(xué)通過(guò)實(shí)際的使用獲得收益,更希望有改進(jìn)的建議(吐槽 :p )、或是共建,來(lái)幫助稚嫩的 Min 逐漸打磨的趨于成熟。
常州小程序開(kāi)發(fā):https://www.qianian.com/read/19.html
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。