minapp
重新定義微信小程式的開發
更新日誌
minapp 2.0.0 已經發布,新版本主要採用了webpack 4,v1.x升級到v2.x請查看
介紹
minapp 是為開發微信小程式而打造的一整套提升開發體驗的工具:
- 提供一個命令列工具
@minapp/cli
,用它可以快速建立一個項目,並且可以用webpack 來建立產生的項目; - 提供一個開發框架
@minapp/core
,此框架是完全相容原生小程式程式碼的框架,支援使用class 的方式來開發,支援程式碼自動補全,同時提供微信所有api 的自動補全 - 提供一個整合了mobx 的框架
@minapp/mobx
,此框架主要為@minapp/core
注入了mobx,可以讓你輕鬆使用mobx 來管理全域數據 - 提供一個vscode 外掛程式
minapp-vscode
,此外掛程式主要是針對小程式的wxml
模板語言,可以自動補全所有的元件、元件屬性、元件屬性值等等
注意:使用minapp 後,還是需要使用微信官方提供的"微信開發者工具"來測試
使用
- 用npm 安裝命令列工具:
npm install -g @minapp/cli
- 初始化專案:
minapp init <你要创建项目的文件夹>
(同時支援建立js 和ts 專案) - 安裝兩個vscode 外掛程式:minapp 和dot-template(可選,但建議安裝)
特點
- 完全相容於原生小程序,所有原生小程序程式碼可以直接遷移到minapp 的環境中
- 整合webpack 和webpack-dev-server,編譯有保障
- 可以選擇使用mobx,方便管理全域數據
- 所有語言在minapp 的環境中都能自動補全,開發體驗超棒(請參閱下面的
功能概览
) - 支援資料雙向綁定
- setData 效能優化
功能概覽(在vscode 編輯器下)
wx 所有介面都有智慧的提醒,同時包含介面的參數,和回傳值
非minapp 用戶也可以安裝@minapp/wx
來取得此功能,請參閱這裡
提供一個promise 版的wx 介面wxp,和wx 一樣,只是它會將wx 中所有需要success/fail/complete 三個參數的函數promise 化
- wxp 中也支援使用success 回調
- wxp 為Promise 增加了一個finally 方法;如,你可以這樣用
wxp.getUserInfo().finally(() => { /* do something */ })
整合mobx,可以非常方便的修改全域數據,並自動更新當前頁面狀態
- 注入Store 只需要在appify 函數中加入Store 物件即可
- Page 和Component 中都預設注入了Store 對象,你可以使用
this.store
來取得
wxml 模板語言支援語法高亮,元件智慧提示,元件屬性智慧提示(需安裝vscode 外掛程式minapp)
欲了解更多此外掛程式的功能詳情,請點此查看
json 檔案支援自動提示
新建一個page 資料夾時,自動產生相關檔案(需要安裝vscode 外掛程式dot-template)
- 自動為你創建相關的同名的文件,包括js/json/wxml/scss,並且這些模板文件你可以隨時在.dtpl 資料夾下修改
- 自動將新建的page 路徑注入app.json 資料夾中
小程式Page 中支援函數自動提示
同理,新建元件資料夾時,也會建立相關的檔案;同時元件中的生命週期函數也會自動提示
關於此倉庫說明
這不是一個項目,是有好幾個項目組合而成的,用的是lerna 開發工具,其它項目在packages 目錄下,這裡對其中的幾個主要項目做個簡要概述
- minapp-generator: 此模組負責解析微信官方文檔,產生結構化的數據,供其它模組使用
- minapp-wx: 微信所有原生api 的TypeScript 定義,另外提供一個promise 版的wx 接口
- minapp-core: 開發框架,需要依賴minapp-wx
- minapp-mobx: 整合mobx 的開發框架,需要依賴minapp-core
- minapp-cli: 提供給使用者的命令列工具,並且可以快速建立一個新項目
- minapp-vscode: vscode 插件,提供wxml語法高亮、標籤與屬性的自動補全
TODO