微信小程序的特点、开发能力及运行机制
小程序的特点及开发能力
小程序的特点
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编程语言,直接在视图里进行完成,这样可以提高渲染效率。
微信小程序的特点、开发能力及运行机制相关推荐
- 另一个小程序 返回的支付结果如何得到_微信小程序商城的开发商家需要注意什么?...
原标题:微信小程序商城的开发商家需要注意什么? 小程序的应用目前已经成为人们使用较为普遍的平台,无论是用于吃喝玩乐亦或是工具.商业发展等.微信作为小程序的首家推出平台,凭借其自身的10亿流量用户让小程 ...
- 微信小程序公众号开发
微信小程序&公众号开发 一.什么是微信开发 二.微信开放平台 三.微信公众平台 四.小程序与公众号的区别 1. 用途不同 2. 运营方式不同 3. 操作方法不同 4. 用户体验不同(公众号操作 ...
- 微信小程序实现lot开发01 学习微信小程序 helloworld
最近走进一个新项目的任务里,主要的任务是实现用微信小程序利用websocket使用mqtt协议走网络控制继电器(其实在生活中这个技术已经普及了,我们用的充电桩扫码充电,我们学校里的饮水机扫码接水以及我 ...
- 微信小程序的云开发以及与传统开发的比较
一.微信小程序的云开发概念 云开发就是一套解决小程序前后端开发的一种云端能力 它提供了一整套云服务及简单.易用的 API 和管理界面,以尽可能降低后端开发成本,让开发者能够专注于核心业务逻辑的开发.尽 ...
- 微信小程序直播间开发抽红包功能
1.前言 微信小程序直播间开发抽红包功能 微信小程序直播是微信官方提供的商家经营工具,商家可通过在小程序内直播实现用户互动与商品销售的闭环,无需任何的跳转,提高下单转化率,直播更是成为链接商家和消费者 ...
- 微信小程序安装与开发步骤
微信小程序安装与开发步骤 1.登陆 :微信专有开发工具安装地址 如图:我选择的是稳定版,64位 安装完成后 如图: 图 2 . 2.新建第一个小程序 2.1 申请 AppID 登陆https://mp ...
- 微信小程序组件库开发记录
微信小程序组件库开发记录 背景 前言 技术选型 环境搭建 安装 gulp 将`scss`编译为`wxss` 压缩`wxml`,`js`,`json`文件和图片 拷贝文件到另一个目录 删除目录 整合 创 ...
- 李艺《微信小程序全栈开发实战》(第一章)
李艺<微信小程序全栈开发实战>(第一章) 双线程运行机制 小程序的特点及开发能力 小程序的特点 小程序的开发能力 开发小程序的一般流程 小程序的运行机制 小程序双线程 视图的持续更新是如何 ...
- 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解
微信小程序 欢迎界面 市面上大多数的app都会有一个欢迎界面,下面将演示如何通过微信小程序实现一个欢迎界面. 下面将会按照以下的顺序介绍: 布局的实现 逻辑的实现 样式的实现 1.布局的实现 整个布局 ...
- 微信小程序image组件开发程序以及相关图片问题参考资料汇总
微信小程序image组件开发程序以及相关图片问题参考资料汇总,希望对大家小程序开发能有一定的参考和借鉴价值.以下汇总主要涉及到微信小程序image组件有关资源路径.缩放和剪裁模式等进行的探讨,无论是对 ...
最新文章
- 理解Lucene索引与搜索过程中的核心类
- 列表框QListWidget类
- QDoc文字标记textmarkup
- java屏蔽关键字_替换禁用语(指定关键字)的过滤器
- 程序员的800字作文
- 如何优雅地处理 EF Core 异常
- Java提高篇 —— Java三大特性之封装
- css演练 0920 个人简历的制作
- html5星期,HTML5 时钟
- 图解红黑树和JAVA实现
- “不做信奥比赛,不做等级考试”的童心制物,是如何在 STEAM 教育突出重围?
- 东北大学计算机生源,辽宁省2021年普通高校招生计划,东北大学、大连理工大学没有扩招...
- Java 重载、重写(Override、Overload)
- 黑马程序员——OC代码规范和编程风格
- WPF 视频教程+笔记
- MATLAB基础教程
- 使用融云 SDK 避坑指南之 iOS13 推送失败
- win10下装黑苹果双系统_小米笔记本pro黑苹果Win10双系统
- python检测excel表是否存在空值
- C#数字黑洞之一(水仙花数黑洞153)
热门文章
- 逃离x86架构-----CPU体系结构CISC与RISC之争
- 博学而笃志,切问而近思,仁在其中矣
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java社区闲置物品交易平台z10mc
- 康奈尔大学计算机生物学是,康奈尔大学生物统计硕士介绍
- Windows 32位下cocos2d-x2.2.0Android环境搭建
- maven3实战之仓库(仓库搜索功能)
- Ubuntu 下 LaTeX 图形环境的配置——使用Kile
- MSDC 4.3 接口规范(25)
- Vue.js笔记(一)
- 数据结构之树家族介绍