用框架是不可能用框架的,这辈子都不可能用框架。

微信小程序上手成本低,开发成本低,流量红利,推广成本低等等,很多公司的创业项目都会首选小程序来试水,小程序开发太火爆了,苦逼了前端工程师,又得学习新技术...学习让我快乐?

半年时间,我已经开发了四个小程序,其中三个微信小程序,一个支付宝小程序。原生开发过,框架也用过。到底最优雅的开发模式是什么呢,聊聊,聊聊。

技术方案

目前开发微信小程序时,可选的技术方案大概有若干种,分别是:

  1. 微信小程序原生开发
  2. 使用wepy框架
  3. 使用mpvue框架
  4. 使用taro框架
  5. 其他框架

使用框架来开发,总结起来就干了一件事——加糖,但这糖好不好呢,不好说。

框架开发的初(li)衷(xiang)

  1. 快速迭代
  2. 减少开发成本
  3. 跨平台共享
  4. 提升开发体验

框架开发的挑(xian)战(shi)

  1. 必须同时熟悉微信小程序文档和第三方框架文档,给工程师提出了更大的挑战
  2. 框架的不完美,只是阉割版或者修改版的前端框架,并没有100%支持框架自身特性
  3. 框架构建与微信小程序之上,反而导致部分原生支持的特性作废,比如原生组件,模块化等
  4. 框架生态不健全,文档及相关资源匮乏
  5. 微信小程序自身处于快速迭代的状态,特性并不稳定,不像web一样有统一的标准

理想很美好,现实很残酷

wepy框架来说,组件化的支持不成熟,在实际的开发过程中,如果组件嵌套超过两层,面对某些特殊业务场景,翻车几率很高。组件的列表渲染,不支持在 repeat 的组件中去使用 props, computed, watch 等等特性。

mpvue框架是基于Vue.js的核心,属于修改版的vue框架,用起来和web端的vue也有些差异。美团小程序框架--mpvue入坑指南

我的想法

使用第三方框架开发,可以享受框架带来的开发便利,但对于小程序新增的诸多特性和功能,比如WXS模块、自定义组件和插件等,受制于第三方框架,无法使用。

而原生小程序的开发模式,又过于简陋,就样式来说,写惯了less,stylus和sass的同学一定无法忍受wxss的这种写法,基于此,决定使用gulp自动化工具来构建一套微信小程序开发的基础模板,在完全保留微信小程序功能和特性的基础上,又可以的使用less来写样式,同时加入图片压缩,命令行快速创建模板等特性,如此开发,快哉,快哉!

wx-miniprogram-boilerplate

后续会再加入其它工具,持续更新,欢迎各位提意见。

微信小程序开发框架从入门到放弃相关推荐

  1. 微信小程序开发框架从入门到放弃 1

    Fundebug专注于JavaScript.微信小程序.微信小游戏,Node.js和Java实时BUG监控.真的是一个很好用的bug监控费服务,众多大佬公司都在使用. 微信小程序上手成本低,开发成本低 ...

  2. 【微信小程序】从入门到放弃

    前言 关于微信小程序是什么,能做什么的问题,草民在此不在罗列了,随着小程序的天天刷屏,想必您也是来吃一些干货,本篇博文和大家走进微信小程序的从入门到放弃~ 微信小程序开放功能 草民看过很多的文档,微信 ...

  3. 微信小程序云开发入门到放弃(二)WXML与WXSS

    WXML与WXSS 相信通过前面的学习,大家对一个完整的小程序的文件结构有了一个大致的了解,对小程序的开发者工具也有了一定的认识,那这节我们来开始动手写一下小程序的代码. 编辑WXML文件 我们在开发 ...

  4. 微信小程序零基础入门_第二章 小程序框架_逻辑层

    第二章 小程序框架_逻辑层 2.1 逻辑层 小程序开发框架的逻辑层是基于JavaScript进行编写和实现的.在开发过程中写的所有代码,最终都被整合成一份JavaScript,在小程序启动的时候开始执 ...

  5. 《微信小程序:开发入门及案例详解》—— 3.4 小结

    本节书摘来自华章出版社<微信小程序:开发入门及案例详解>一 书中的第3章,第3.4节,作者李骏 边思,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.4 小 ...

  6. 知乎爆赞!4504页《微信小程序零基础入门开发文档》+《小程序实战笔记》,你学废了吗?

    前言 微信小程序作为近几年"微服务"的杰出代表,应用十分广泛.小程序是一种新的开放能力,开发者可以快速地开发一个小程序.小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验 ...

  7. 【微信小程序】开发入门篇(二)

    前言 ❤️ 所谓信仰,可能就是在人们一无所剩的时候仅有的那种东西 ❤️ [微信小程序]开发入门篇(二) 一.小程序的宿主环境 (1)宿主环境简介 1.1 什么是宿主环境 1.2 小程序的宿主环境 (2 ...

  8. MOOC微信小程序开发从入门到实践~笔记

    MOOC微信小程序开发从入门到实践~笔记 1.图标网站[icon]www.iconfont.cn 2.新建项目是必须需要AppID 3.app.js是页面逻辑文件 app.json是页面全局配置文件( ...

  9. 【微信小程序】开发入门篇(一)

    前言 ❤️ 你可能认为一个人无法改变世界,但我想让你知道,这个世界也无法改变像我这样的人 ❤️ [微信小程序]开发入门篇(一) 一.小程序简介 (1)小程序与普通网页开发的区别 二.第一个小程序 (1 ...

最新文章

  1. python删除csv某一行_Python如何修改CSV的某一行/列的值
  2. mpvue 转uniapp 导航栏样式错乱问题修复 tabbar 样式修复
  3. 零基础自学python看什么书-零基础学习Python那些书值得看
  4. vs增量链接、清单文件
  5. 健康研究总结摘录专题
  6. c#进阶(5)—— WCF 实现简单预订功能
  7. 垃圾回收算法_垃圾回收算法有哪些
  8. 如何让Kubernetes集群生产可用?
  9. java项目分页_Java项目实战分页类
  10. SpringCloud工作笔记075---SpotBugs介绍--优化java代码的质量
  11. el表达式 多条件判断
  12. BLOB存储图片文件二进制数据是非对错
  13. SAP SD pricing condition技术在系统里的一些练习
  14. 【毕业求职季】-听说你想去大厂看学妹,带你看看字节广告运营岗面试长啥样?
  15. 导向滤波原理(Guided Filter)
  16. C++关于引用的分析
  17. mulesoft Module 10 quiz 解析
  18. C语言为什么不会过时?
  19. CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)
  20. vba报错:不能设置类worksheet的visible属性

热门文章

  1. RAC修改数据库的spfile位置
  2. Alluxio HA 写入文件失败
  3. 六周第四次课(5月2日)
  4. Navicat Premium 12全系列
  5. VBA实现两种方法生成任意概率分布的随机数
  6. node.js 多个异步过程判断执行是否完成
  7. linux的pthread.h
  8. iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用
  9. 等宽矩阵(a)相乘a %*% x = b的逆运算solve(a,b)=x
  10. VC CListCtrl 第一列列宽自适应