【推荐】开源项目minapp-重新定义微信小程序的开发
minapp
重新定义微信小程序的开发
作者:Mora
minapp
重新定义微信小程序的开发
使用
- 用 npm 安装命令行工具:
npm install -g @minapp/cli --registry "https://registry.npmjs.org/"(避免从淘宝镜像上安装,它上面的还是老版本,已经给他们提了一个 issue) - 初始化项目:
minapp init <你要创建项目的文件夹>(同时支持创建 js 和 ts 项目) - 安装两个 vscode 插件:minapp 和 dot-template(可选,但建议安装)
功能概览(在 vscode 编辑器下)
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-core: 微信所有原生 api 的 TypeScript 定义,另外提供一个 promise 版的 wx 接口
- minapp-mobx: 开发框架,集成 mobx
- minapp-compiler: 一个小程序的编译器,集成 webpack 和 webpack-dev-server
- minapp-webpack-utils: 编译器中需要使用的 webpack 相关的插件
- minapp-cli: 提供给用户的命令行工具,集成了 minapp-compiler,并可以快速创建一个新项目
- minapp-vscode: vscode 插件,为wxml提供语法高亮、标签与属性的自动补全
TODO
- [ ] 小程序中的静态资源自动上传到 七牛 (完成我的 file-uploader 组件)
- [ ] 实现类似于 vue 的功能,可以将所有文件写在一个页面上
- [ ] webpack 升级到 4.0
- [ ] 写一个小程序的自动化测试框架
下一篇:作者亲著,重新定义微信小程序开发 —— 上篇
【推荐】开源项目minapp-重新定义微信小程序的开发的更多相关文章
- 第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现
第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现 开发环境搭建 使用自己的AppID新建小程序项目,后端服务选择小程序·云开发,点击新建,完成项目新建. 新建成功后跳转到开发者工具界面 ...
- 微信小程序-云开发-实战项目
微信小程序-云开发-实战项目 微信小程序 微信小程序平台服务条款 https://developers.weixin.qq.com/miniprogram/product/service.html h ...
- “我要点爆”微信小程序云开发实例
使用云开发进行微信小程序“我要点爆”的制作 下一章:“我要点爆”微信小程序云开发之项目建立与我的页面功能实现 接下来我将对“我要点爆”微信小程序进行完整的开源介绍 小程序名称: 我要点爆 查看方式:从 ...
- 微信小程序从零开始开发步骤(八)引入框架WeUI
首先来看下WeUI的官方介绍: WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一.在微信小程序的开发过程中,涉及到的前端 ...
- vue+uni-app商城实战 | 第一篇:【有来小店】微信小程序快速开发接入Spring Cloud OAuth2认证中心完成授权登录
一. 前言 本篇通过实战来讲述如何使用uni-app快速进行商城微信小程序的开发以及小程序如何接入后台Spring Cloud微服务. 有来商城 youlai-mall 项目是一套全栈商城系统,技术栈 ...
- 微信小程序快速开发
微信小程序快速开发 一.注册小程序账号,下载IDE 1.官网注册https://mp.weixin.qq.com/,并下载IDE. 2.官方文档一向都是最好的学习资料. 注意:1)注册账号之后会有一个 ...
- 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作
爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...
- 小程序语音红包开发中 汉字转拼音的问题 微信小程序红包开发遇到的坑
公司最近在开发微信小程序的红包功能,语音红包需要用到文字转拼音的功能. 之前介绍过怎么将中文的汉字转为拼音的,具体看下面这篇文章. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信 ...
- 微信小程序从零开始开发步骤(三)底部导航栏
上一章节,我们分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的.即点击底部的导航,会实现不同对应页面之间的切换. 我们先来看个我们要实现的底部导航栏的效果图:(三个导 ...
随机推荐
- Junit4X系列--hamcrest的使用
OK,在前面的一系列博客里面,我整理过了Assert类下面常用的断言方法,比如assertEquals等等,但是org.junit.Assert类下还有一个方法也用来断言,而且更加强大.这就是我们这里 ...
- secureCRT sftp使用
sftp-- help 可用命令: cd 路径 更改远程目录到"路径" lcd 路径 更改本地目录到"路径" chgrp group path 将文件" ...
- 配置struts2拦截器
<!-- 配置拦截器 --> <interceptors> <!-- 声明拦截器 --> <inte ...
- java判断时间大小
//构造日期格式yyyy-MM-NN SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date d ...
- 【转】Matlab中的括号()[] {}
Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢?] []
- 常用的几个PHP加密函数
1.前言 PHP加密方式分为单项散列加密,对称加密,非对称加密这几类. 像常用的MD5.hash.crypt.sha1这种就是单项散列加密,单项散列加密是不可逆的. 像URL编码.base64编码这种 ...
- html集锦
注意:此内容为复习所总结,非专业,不全,理解记录理解会有偏差. 一.HTML解释: 指的是超文本标记语言 (Hyper Text Markup Language),不是一种编程语言,而是一种标记语言 ...
- Spring Boot-JPA
前文我们使用SPRING INITIALIZR快速构建了一个空的Spring Boot项目,并增加web模块实现了HTTP请求. 这一篇继续在该demo的基础上,增加JPA的功能. JPA全称Java ...
- 关于css选择器的一些细节
1.如何区分一个html标签的不同样式 使用标签名.类名的方式解决 如果希望特别强调其中的某一个或几个元素,处理的方案有三个: 1.id选择器 2.class选择器 3.层级选择器 看下面的代码: & ...
- python 之协程
协程: 协程,又称微线程. 是一种用户态的轻量级线程(存在一个线程中,所以没有上下文切换,与同步) 无需线程上下文切换的开销 在线程中,线程切换时需要记住上下文 无需原子操作及同步的开销 没有锁了, ...