小程序的1024KB
1024kb 只是一个目前编译后代码可上传最大限制,至于后期会不会更改,不得而知。个人只是想借 1024kb 来和大家一起交流一下,如何在限制下,挥舞大刀…
微信官方回答了,为什么有 1024kb 的限制。 省流、空间占用少! 那么如何有效利用1024kb?
对于开发微信小程序的程序员来说,你必须有一种”一分钱掰成两半花”的思想准备。
个人认为:在 1024kb 的有限空间内,能否做出更多的事情,这将是一个挑战。而我们该如何应对这个挑战呢? 下面说说的笔者的几点看法:
- 官方规范,我相信,你今天可以不看,明天也可以不看,后天应该就要看看了吧
- 交互设计稿,简单一点,再简单一点,flex实现的九宫格、网格…
- UI组件,微信官方作为首选(参照UI设计规范,有能力的赶紧设计出几套简约风格的吧,也许将为你带来不小的收获)
- 代码复用。公共类、通用模块什么的,赶紧做起来吧
大道理的落地实现,举几个例子:
1 . 官方文档中的组件篇,封装了一些常见的组件,微信官方封转时充分考虑了移动端的多样性,进行了适配,我相信一般开发者做不到这么好的封装吧,切忌为了一些酷炫的效果,去自己封装组件,除非你足够牛X,再者,一共就 1024 kb,在封装组件上浪费大量空间,并不理智。如果这些不足以满足需求,还有WEUI
2 . 媒体组件必须使用时,避免使用本地资源,将这些占空间的内容放到服务端将更好;媒体资料使用压缩传输,下载到本地缓存内,进行解压展示,配合过期策略,将能在省流和较佳的媒体展示中找到你一个平衡点;如果做不到这些,就将媒体资料压缩后在传到服务器上吧
3 . 小程序提供本地缓冲,在安全的以保证的情况下,发挥它的作用吧。媒体资料建议不要滥用,如果可以用简单几句话可以表达你的意思的话。毕竟小程序 是一个“小应用”
4 . 交互设计稿布局方面,微信官方在Css Flexbox布局基础上,简化后创造的flex布局,官方推荐使用,使用时仅需对容器和元素进行简单的wxss样式设置即可得到自己的布局方案
5 . 基于模块化编程,提高代码复用性。将通用业务逻辑封装成模块,实现重用,将可节省大量空间去做更重要的事情
小程序的1024KB的更多相关文章
- 如果解决小程序1024kb渲染之坑
问题: 在小程序开发中如果有那么个场景和操作步骤,获取商品下拉列表商品列表data为goodsList 当从后台获取数据response.data.list,通常我们会setData({goodsLi ...
- 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...
- 微信小程序学习
官方网站 https://mp.weixin.qq.com/debug/wxadoc/dev/index.html 项目结构介绍 -- MINA框架 https://mp.weixin.qq.com/ ...
- 微信小程序教程(第四篇)
小程序开发基本框架及其限制与优化 开发基本框架(MINA框架) └─ Project-folder/ ·································· 项目所在目录 ├─ page ...
- 微信小程序学习笔记(三)
一般setData方法多用于点击后改变页面信息或者刷新后与后台交互获取最新的信息 注意: 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致 ...
- 微信小程序开发小结
1.点击按钮分享功能: 使用Button组件,设置open-type="share",然后在js文件的onShareAppMessage方法中设置如下: onShareAppMes ...
- 微信小程序-06-详解介绍.js 逻辑层文件-注册页面
上一篇介绍的是 app.js 逻辑层文件中注册程序,对应的每个分页面都会有的 js 文件中 page() 函数注册页面 微信小程序-06-详解介绍.js 逻辑层文件-注册页面 宝典官方文档: http ...
- 微信小程序笔记<四>page.js —— 页面注册
小程序的每个页面都是独立的,每个页面都必须有 page.js 和 page.wxhl 文件,page.json 和 page.wxss 文件非必要文件,注意如果创建 page.json 则至少保证有一 ...
- 微信小程序与vueJs的异同
简而言之,所有的框架都是建立在原生javascript基础之上的,所以对于有一定js基础的同学来说,各种框架都是比较容易入手的,但不同的框架之间又有一定的差别,有时候切换使用时就会掉入坑了. 一.微信 ...
随机推荐
- Javaweb快速学习
孙卫琴老师的javaweb一书已经买了很多年,由于很厚一直也没有去好好阅读下, 项目发布后有闲暇时间,决定快速学习了,毕竟很多概念和知识主要还是复习. 对于互联网,我们可以简单认为浏览器就是会人类语言 ...
- 第一章开发简单的Java应用程序
1.什么是程序? 程序一词来源于生活,通俗点讲就是把生活的的事用程序编写出来 并执行. 2.为什么要学习Java呢? Java是Sun Microsystems于1995年推出的高级编程语言 Java ...
- laravel blade $loop
laravel 5.3 blade 新增$loop变量 文档如下: 在Laravel 5.3中,@foreach指令提供了更加强大的功能,在每一个@foreach循环体中都可以调用一个新的$loop变 ...
- Linux之shell编程函数使用
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 原文和作者一起讨论:http://www.cnblogs.com/int ...
- 学习MVC之租房网站(四)-实现Service层并进行单元测试
在上一篇<学习MVC之租房网站(三)-编写Eneity类并创建数据库>中,记录了编写Eneity类并采用CodeFirst的方式创建数据库的过程,接下来就到了Service层的实现了,并且 ...
- Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)
一.先摆需求: 1.中文搜索.英文搜索.中英混搜 如:"南京东路","cafe 南京东路店" 2.全拼搜索.首字母搜索.中文+全拼.中文+首字母混搜 如 ...
- 通过web对.exe程序进行更新和修改
实现功能:通过网站更新用户的软件,需要联网,也可以通过本地网站更新局域网用户软件. 根本实现:1.一个网站(我用的是自己的www.aq36.xyz ,本地就可以,可以用localhost)然后运行up ...
- 《Effective C#》读书笔记-1.C# 语言习惯-2.使用运行时常量(readonly)而不是编译时常量(const)
概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识 ...
- NodeJs之fs的读写删移监
NodeJs版本:4.4.4 fs 文件系统模块是一个封装了标准的 POSIX 文件 I/O 操作的集合.Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本. 图片的复制与粘贴 创建 ...
- 分布式键值存储系统ETCD调研
分布式键值存储系统ETCD调研 简介 etcd是一个开源的分布式键值存储工具--为CoreOS集群提供配置服务.发现服务和协同调度.Etcd运行在集群的每个coreos节点上,可以保证coreos集群 ...