小程序的特点及开发能力

小程序的特点

1、相比于传统应用,有以下特点:

  • 与web相比,首先入口不同。
  • 主要都是基于传统的前端技术,以JavaScript语言为主。
  • 与APP相比,学习门槛和开发成本都比较低,可以快速上手。
  • 不需要下载和安装,不想用了也不需要卸载。
  • 相比h5,小程序受限微信运营规范,不像h5页面那么灵活。但他也可以做一些h5做不了的事情,比如消息订阅,直接转发消息给好友等。

小程序的开发能力

1、依托于微信的宿主环境,除了常用的UI组件及网络API之外,在设备能力上,凡微信有的能力,例如振动、监听网络状态、罗盘等,小程序都有。此外,在运营上开放的能力是大家比较关心的,有以下8点值得关注:

  • 小程序和公众号可重名
  • 小程序开放群相关能力
  • 小程序“附近小程序”功能
  • 小程序“星标”功能
  • 小程序可关联500个公众号
  • 可以直接打开网页
  • 小程序的灰度更新和线上版本回退功能
  • 小程序客服能力配置

开发小程序的一般流程

1、微信团队打造了完善的开发生态。不仅有配套的微信开发者工具,还有社区,文档等。企业和个人都可以注册小程序账号,开发、上架自己的小程序产品,接入流程主要包括以下4步:

  • 注册
  • 小程序信息完善
  • 开发小程序
  • 提交审核和发布

小程序的运行机制

启动机制

1、小程序启动会有两种情况:

  • 冷启动
  • 热启动

双线程架构

1、为了安全和管控,小程序使用双线程执行:视图线程和逻辑线程。

  • view 视图线程
  • APP service 逻辑线程

2、逻辑线程的四个状态

  • 初始化状态,启动服务线程所需的基本功能,系统的初始化工作完毕就调用自定义的onLoad和onShow,然后等待界面线程的初始化完成信息,onLoad只是首次渲染的时候执行一次,onShow是每次界面切换的时候都会执行。
  • 等待激活状态,接收到视图线程初始化完成信号后,将初始化数据发送给视图线程,等待界面线程完成初次渲染。
  • 激活状态,收到界面线程发送来的首次渲染完成信号后,就进入激活状态,即程序的正常运行状态,并调用自定义的onReady函数,在这个状态下可以通过setData函数,发送更新数据给视图线程以更新页面。
  • 后台运行状态,如果界面进入后台,服务线程就进入后台运行状态,在这种状态下也可以通过setData函数更新视图数据,但这种更新其实是我们应该避免的。

总结

小程序采用的是双线程结构,一个线程负责视图的渲染,一个线程负责业务逻辑的处理,两个线程都通过WeixinJSBridag与微信Native底层进行通讯,包括两者之间进行的事件与数据的交换,也是通过它完成的。所有平台能力、硬件能力也是通过WeixinJSBridge间接提供的。

由于setData在频繁更新和大数据更新上有瓶颈,影响渲染效率,所以微信引入了WXS编程语言,一般在开发时我们这样处理,从后端接口接收回来的初始化数据,在页面onLoad之前,就塞在Data数据之中,用于视图的初始化渲染,后续的视图交互与更新,如果不与后台有关,我们就是用WXS编程语言,直接在视图里进行完成,这样可以提高渲染效率。

微信小程序的特点、开发能力及运行机制相关推荐

  1. 另一个小程序 返回的支付结果如何得到_微信小程序商城的开发商家需要注意什么?...

    原标题:微信小程序商城的开发商家需要注意什么? 小程序的应用目前已经成为人们使用较为普遍的平台,无论是用于吃喝玩乐亦或是工具.商业发展等.微信作为小程序的首家推出平台,凭借其自身的10亿流量用户让小程 ...

  2. 微信小程序公众号开发

    微信小程序&公众号开发 一.什么是微信开发 二.微信开放平台 三.微信公众平台 四.小程序与公众号的区别 1. 用途不同 2. 运营方式不同 3. 操作方法不同 4. 用户体验不同(公众号操作 ...

  3. 微信小程序实现lot开发01 学习微信小程序 helloworld

    最近走进一个新项目的任务里,主要的任务是实现用微信小程序利用websocket使用mqtt协议走网络控制继电器(其实在生活中这个技术已经普及了,我们用的充电桩扫码充电,我们学校里的饮水机扫码接水以及我 ...

  4. 微信小程序的云开发以及与传统开发的比较

    一.微信小程序的云开发概念 云开发就是一套解决小程序前后端开发的一种云端能力 它提供了一整套云服务及简单.易用的 API 和管理界面,以尽可能降低后端开发成本,让开发者能够专注于核心业务逻辑的开发.尽 ...

  5. 微信小程序直播间开发抽红包功能

    1.前言 微信小程序直播间开发抽红包功能 微信小程序直播是微信官方提供的商家经营工具,商家可通过在小程序内直播实现用户互动与商品销售的闭环,无需任何的跳转,提高下单转化率,直播更是成为链接商家和消费者 ...

  6. 微信小程序安装与开发步骤

    微信小程序安装与开发步骤 1.登陆 :微信专有开发工具安装地址 如图:我选择的是稳定版,64位 安装完成后 如图: 图 2 . 2.新建第一个小程序 2.1 申请 AppID 登陆https://mp ...

  7. 微信小程序组件库开发记录

    微信小程序组件库开发记录 背景 前言 技术选型 环境搭建 安装 gulp 将`scss`编译为`wxss` 压缩`wxml`,`js`,`json`文件和图片 拷贝文件到另一个目录 删除目录 整合 创 ...

  8. 李艺《微信小程序全栈开发实战》(第一章)

    李艺<微信小程序全栈开发实战>(第一章) 双线程运行机制 小程序的特点及开发能力 小程序的特点 小程序的开发能力 开发小程序的一般流程 小程序的运行机制 小程序双线程 视图的持续更新是如何 ...

  9. 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解

    微信小程序 欢迎界面 市面上大多数的app都会有一个欢迎界面,下面将演示如何通过微信小程序实现一个欢迎界面. 下面将会按照以下的顺序介绍: 布局的实现 逻辑的实现 样式的实现 1.布局的实现 整个布局 ...

  10. 微信小程序image组件开发程序以及相关图片问题参考资料汇总

    微信小程序image组件开发程序以及相关图片问题参考资料汇总,希望对大家小程序开发能有一定的参考和借鉴价值.以下汇总主要涉及到微信小程序image组件有关资源路径.缩放和剪裁模式等进行的探讨,无论是对 ...

最新文章

  1. 理解Lucene索引与搜索过程中的核心类
  2. 列表框QListWidget类
  3. QDoc文字标记textmarkup
  4. java屏蔽关键字_替换禁用语(指定关键字)的过滤器
  5. 程序员的800字作文
  6. 如何优雅地处理 EF Core 异常
  7. Java提高篇 —— Java三大特性之封装
  8. css演练 0920 个人简历的制作
  9. html5星期,HTML5 时钟
  10. 图解红黑树和JAVA实现
  11. “不做信奥比赛,不做等级考试”的童心制物,是如何在 STEAM 教育突出重围?
  12. 东北大学计算机生源,辽宁省2021年普通高校招生计划,东北大学、大连理工大学没有扩招...
  13. Java 重载、重写(Override、Overload)
  14. 黑马程序员——OC代码规范和编程风格
  15. WPF 视频教程+笔记
  16. MATLAB基础教程
  17. 使用融云 SDK 避坑指南之 iOS13 推送失败
  18. win10下装黑苹果双系统_小米笔记本pro黑苹果Win10双系统
  19. python检测excel表是否存在空值
  20. C#数字黑洞之一(水仙花数黑洞153)

热门文章

  1. 逃离x86架构-----CPU体系结构CISC与RISC之争
  2. 博学而笃志,切问而近思,仁在其中矣
  3. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java社区闲置物品交易平台z10mc
  4. 康奈尔大学计算机生物学是,康奈尔大学生物统计硕士介绍
  5. Windows 32位下cocos2d-x2.2.0Android环境搭建
  6. maven3实战之仓库(仓库搜索功能)
  7. Ubuntu 下 LaTeX 图形环境的配置——使用Kile
  8. MSDC 4.3 接口规范(25)
  9. Vue.js笔记(一)
  10. 数据结构之树家族介绍