小程序的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基础的同学来说,各种框架都是比较容易入手的,但不同的框架之间又有一定的差别,有时候切换使用时就会掉入坑了. 一.微信 ...
随机推荐
- js实现文本框溢出文字用省略号(...)表示
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 高吞吐koa日志中间件
Midlog中间件 node服务端开发中少不了日志打点,而在koa框架下的日志打点在多进程环境中日志信息往往无法对应上下文,而且在高并发下直接进行写buffer操作(内核调用writev)也会造成内存 ...
- (iOS)关于UITableView设置contentsize(原创)
由于UITableView是继承自UIScrollView的,所以他是可以设置contentsize的. 但是,我在试验的过程中,初始化UITableView实例后,直接设置它的contentsize ...
- 浅析Java中synchronized与static synchronized
synchronized关键字 synchronized是进行同步处理而保证线程安全.在一个方法中,如果是方法内的私有变量,那个这个变量是线程安全的,但是类中的实例变量是可能会出现线程安全问题的,当多 ...
- Windows入门基础:1.关于CreateWindow()函数使用中遇到的问题
我在实现显示窗口的程序中,遇到一个问题:首先程序没有任何语法错误,编译能够通过,但是就是不能弹出窗口. 后来在MSDN中查询CreateWindow()函数,发现了下面这句话: "If lp ...
- 写出稳定的Modbus代码之点滴经验
1.引言 Modbus是工业领域重要的协议,物理层有常见的RS485双绞线和TCP,所以又常说Modbus 485开发和Modbus TCP开发. 前者就是串口通信,比较简单.后者涉及到网络协议,复杂 ...
- socket.io的编程实现
socket.io实例 一.环境要求 客户端需要引用socket.io.js文件 服务端需要按照node环境,以及npm install socket.io用来安装服务端的socket.io 二.客户 ...
- js 不要使用new
(1)不要使用new Array(),new Number, new String, or new Boolean. 等等 如果要新建数组,没有必要使用new Array(),使用[];原因是直观. ...
- [Android]Gradle 插件 DiscardFilePlugin(class注入&清空类和方法)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6732128.html Android Gradle 插件 Di ...
- EF的DbSet属性的Where查询,注意事项
#1 Func<T,bool>与 Expression<Func<T,bool>>的区别 Func<T,bool>本身就是一个委托(delegate), ...