• 欢迎访问惜文个人博客
  • 本博客最新公告:本站已经支持使用QQ和GitHub帐号快捷登录啦!
  • 访问本站建议使用火狐和谷歌浏览器哦!
  • 不知道要写什么哈哈
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏惜文博客吧
  • 源码模板插件免费下载,传送门:点我去看看传说中的安全之家!

开发微信小程序必须要知道的事

闲言碎语 惜 文 来源:开发微信小程序必须要知道的事 2年前 (2018-11-16) 2039次浏览 0个评论 扫描二维码

为什么是小程序?

为什么我们会开发小程序呢?或许是因为工作需要,或许是源于自己的追求(来自名利的欲望),但我要说——这是一种缘分,很美好的缘分,很多年后还值得庆幸的缘分

  • 小程序目前可以分为三个阶段
    • 一是语音和摇一摇(还有yue pao利器的传说)
    • 二是公众号,也就是这时注定了小程序的出现是历史的必然选择(shihouzhuge),为什么这么说呢?因为微信在开放了webview的同时加入了js-sdk的开发工具包,而这就是小程序的前身
    • 三就是当下的微信os,能跑小程序的微信
  • 我们继续来说说第二点,有了js-sdk不就可以了吗?不就可以打通微信了吗?还要什么小程序?!可是人家是有梦想的鹅厂啊!!?
    • 先从技术上说,js-sdk只是为传统网页提供包含微信api的开发工具包,并没有解决移动网页遇到的体验不良问题,所以小程序就做了
      • 资源离线存储,提高加载速度
      • 提供更强的开放能力
      • 通过构建组件系统实现对安全性的管控
      • 通过内置实现的组件提高开发速度和降低开发成本
      • 开放入口啊,不像网页只能通过链接打开
      • 加上其他XXX就搞出了比拟原生的体验(chadebushao)
    • 微信的梦想上说
      • 作为一个月活超10亿的超级app,人口红利已达天花板,所以现在开始打时长红利的主意,拓展微信的使用场景,拓宽微信的边界
      • 马化腾亲口说过:从消费互联网到产业互联网,随着产业互联网时代的到来,我们也在“连接产业”上寻求突破,而小程序就是连接产业互联网的“利器”,什么是产业互联网?简单理解就是互联网+的马化腾版,是通过大数据、互联网等技术给B端/产业赋能的东东,这么说是不是就理解了“利器”一说,不仅给我们众多程序员创业的机会,也让他们以最低成本赶上互联网的快车啊
      • 赚钱啊!鹅厂的梦想啊!

做什么样的小程序?

回到上面的引子,为什么值得庆幸?因为上面说了——能降低开发成本,能提高用户体验,能褥流量!能让每个人都有机会搞事情!!!搞什么呢?我也不知道,如果你有好的想法欢迎联系我?不过,这里分享下我的想法

  • 战线不能长!张小龙说过——”用完即走”,其实这不是原因,只是我调个书袋而已?但微信确实是这样啊,聊天、朋友圈,好像确实没什么太丧心病狂的一直拉着你不走(好像现在还有看一看?始终记住——鹅厂有梦想!)所以你做的东西要符合人家产品的理念!好吧,说个实际的场景,如果你要在小程序里的创作文章,那别人来一条信息你回不回?不回?你的思绪回不回被打乱?不会?你的心情会不会很烦?不会??你赢了,来生再见,所以权衡好你的功能设计,战线越长越容易死
  • 短!平!快! 对应上面。就是快速进入主题,功能点一目了然,功能也尽量单一,该干什么尽快干什么!例如让用户分享,让用户pay,快!快!快!不犹豫,让用户尽快上车
  • 做矩阵,对应上面,如果你想把app的功能都搬到小程序上,那一定要做功能拆分,做多个小程序形成矩阵,同时矩阵还能形成合力,a给b拉客,b给a拉客,即便b进局子了还有老大哥a

小程序os长什么样?

想种一个小程序总先知道这片土地什么样吧?OK,欢迎来到小程序黑土地。

开发微信小程序必须要知道的事

  • 首先我们先说说小程序用到的两个线程——渲染线程、脚本线程,与网页开发不同,这两个线程是分开的,分别运行在不同的线程中,而网页则是互斥的,也就是说视图和脚本被分开了,在不同的线程里,这就导致了和普通网页开发一个很大的不同——没有DOM API,而且也不是运行在浏览器里所以也没有BOM API
  • 我们再看图还发现小程序总共有三种运行环境,并且!每个环境两个线程还都不一样!所以同学们啊,在开发工具上行的在真机上不一定行啊!可别太天真了,一定要在真机上验证功能的可行性!
  • 我们有没有想过小程序为什么要费那么大功夫重造轮子?不直接用成熟的web技术?说是体验,其实我觉得最主要的是微信想管控一切,不是你想怎样就可以怎样,而是我让你怎样,你才能怎样(至今我还对此很不爽)所以就干掉了灵活的web,别被我带沟里——小程序并不是完全没有了web,实际上你看到的就是web,只是没有暴露出来,而是微信直接通过编译小程序来替你操作了

既然是两个线程,那必然要通信啊,要协作完成任务,那怎么实现的呢?看下面的通信模型

开发微信小程序必须要知道的事

没看到图也能先想到是这个样式?,这里提示几点

  • 上图中的Native是指微信客户端
  • 逻辑层发送网络请求也经由Native转发
  • 渲染层是由多个webview组成的,为什么?为了提供更好的交互体验呀,这样也更贴近原生体验,同时避免了单个WebView的任务过于繁重,同时导致了小程序的生命周期不容易被理解(下面带你理解)
  • 通信是有时间成本的,所以在开发中我们最好使用异步接口

来看下生命周期

开发微信小程序必须要知道的事

  • 其实了解了渲染层是由多个webview组成的就很容易理解生命周期了
    • navigatebBack是返回上一个webview,销毁当前的webview
    • navigateTo是打开承载新页面的webview,同时保留老的webview
    • redirectTo是在当前webview里打开新的页面
  • 左下角有两张拼一起的图是switchTab的
  • Tabbar页面初始化之后不会被销毁!所以Tabbar页面不会unLoad,更多请参阅图片

惜文博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:开发微信小程序必须要知道的事
喜欢 (1)
[白白]
分享 (0)
惜 文
关于作者:
感觉自己萌萌哒,啦啦啦,个人说明也没啥可写
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址