探索、思考、创造、分享

数据驱动、坚持为客户提供有价值的服务和内容

当前位置: 首页 > 小程序资讯_南京小程序开发_南京微信小程序开发制作_南京app开发-安优云 > 小程序制作
南京小程序开发来说说小程序架构是什么?
来源:南京小程序开发   发布时间:2020-10-10 09:51:31点击:
一、app的分类

大致可以分为这3种:

native app(原生app)、web app、hybrid app(混合app),关系如下图:

二、什么是小程序

小程序是介于web网页应用和原生应用的一种产物;

小程序的特点:

三、小程序架构

视图层和逻辑层分离,通过数据驱动,事件交互,不直接操作DOM

视图层负责渲染页面结构,逻辑层负责逻辑处理、数据请求、接口调用等

视图层与逻辑层通过数据和事件进行通信,逻辑层提供数据给视图层,视图层通过绑定/捕获事件发起交互让逻辑层处理

视图使用WebView渲染,JS由JSCore(IOS)/X5(Android)/nmjs(DevTool)渲染解析

JSBridge下架起上层开发与Native(系统层)的桥梁,使得小程序可通过API使用原生的功能,且部分组件为原生组件实现,从而有良好体验。实现了对底层API接口的调用,所以在小程序里面开发,开发者不用太多去考虑OS的实现差异的问题,安心在上层的视图层和逻辑层进行开发即可。

数据通信机制:

分为数据单项绑定、事件绑定。

四、小程序项目结构

约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。

五、小程序生命周期

小程序的生命周期分为应用生命周期和页面生命周期

应用生命周期:

属性    类型    描述    触发时机
onLaunch    Function    生命周期函数--监听小程序初始化    当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
onShow    Function    生命周期函数--监听小程序显示    当小程序启动,或从后台进入前台显示,会触发 onShow
onHide    Function    生命周期函数--监听小程序隐藏    当小程序从前台进入后台,会触发 onHide

页面生命周期:

Page()函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。
object 参数说明:

属性    类型    描述
data    Object    页面的初始数据
onLoad    Function    生命周期函数--监听页面加载
onReady    Function    生命周期函数--监听页面初次渲染完成
onShow    Function    生命周期函数--监听页面显示
onHide    Function    生命周期函数--监听页面隐藏
onUnload    Function    生命周期函数--监听页面卸载 
小程序注册完成后,加载页面,触发onLoad方法。
页面载入后触发onShow方法,显示页面。
首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
当小程序后台运行或跳转到其他页面时,触发onHide方法。
当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。
当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload。
用Page 实例说明的页面的生命周期

南京小程序开发由上图可知,小程序由两大线程组成:负责界面的视图线程(view thread)和负责数据、服务处理的服务线程(appservice thread),两者协同工作,完成小程序页面生命周期的调用。

视图线程有四大状态:

初始化状态:初始化视图线程所需要的工作,初始化完成后向 “服务线程”发送初始化完成信号,然后进入等待状态,等待服务线程提供初始化数据。
首次渲染状态:当收到服务线程提供的初始化数据后(json和js中的data数据),渲染小程序界面,渲染完毕后,发送“首次渲染完成信号”给服务线程,并将页面展示给用户。
持续渲染状态:此时界面线程继续一直等待“服务线程”通过this.setdata()函数发送来的界面数据,只要收到就重新局部渲染,也因此只要更新数据并发送信号,界面就自动更新。
结束状态:页面被回收或者销毁、应用被系统回收、销毁时触发。
服务线程五大状态:

初始化状态:此阶段仅启动服务线程所需的基本功能,比如信号发送模块。系统的初始化工作完毕,就调用自定义的onload和onshow,然后等待视图线程的“视图线程初始化完成”号。onload是只会首次渲染的时候执行一次,onshow是每次界面切换都会执行,简单理解,这就是唯一差别。
等待激活状态:接收到“视图线程初始化完成”信号后,将初始化数据发送给“视图线程”,等待视图线程完成初次渲染。
激活状态:收到视图线程发送来的“首次渲染完成”信号后,就进入激活状态既程序的正常运行状态,并调用自定义的onReady()函数。此状态下就可以通过 this.setData 函数发送界面数据给界面线程进行局部渲染,更新页面。
后台运行状态:如果界面进入后台,服务线程就进入后台运行状态,从目前的官方解读来说,这个状态挺奇怪的,和激活状态是相同的,也可以通过setdata函数更新界面的。毕竟小程序的框架刚推出,应该后续会有很大不同吧。
结束状态:页面被回收或者销毁、应用被系统回收、销毁时触发。

应用的生命周期对页面生命周期的影响

小程序初始化完成后,页面首次加载触发onLoad,只会触发一次。
当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。
当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。
六、启动方式

小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」。 南京小程序开发假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动;冷启动指的是用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。

更新机制
小程序冷启动时如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。 如果需要马上应用最新版本,可以使用 wx.getUpdateManager API 进行处理。

运行机制
小程序没有重启的概念
当小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间后(目前是5分钟)会被微信主动销毁
当短时间内(5s)连续收到两次以上收到系统内存告警,会进行小程序的销毁
  • 上一篇:南京小程序开发哪家好?
  • 下一篇:如何运营好小程序的方法?
  • 版权备注
    最新资讯
    2021-11-02
    微信小程序开发最佳实践
    最开始小程序的开发和应用,现在小程序的开发越来越成熟,完善了很多API、组件、架构等,社区也从原来的零星到现在是不大不...
    2021-11-02
    微信小程序使用goeasy实现websocket实时通讯
    无需下载安装,可在微信好友、微信群之间快速转发。用户只需扫码或点击微信即可立即运行。拥有类似app的用户体验,让微信a...
    2021-11-02
    微信小程序表单提交复选框无法取值
    开始学小程序,这个ChecBox值弄了一个下午,百度没有靠谱的回答论坛问大神 微信小程序表单提交复选框取不了值 <label cla...
    2021-10-22
    微信公众号和视频号如何流量融合?
    最近微信公众号和视频号同时咨询的比较多。今天给大家分享下,微信公众号和微信视频号如何进行流量互通融合。 1,视频号...
    2021-10-22
    微信公众号和视频号如何流量融合?
    最近微信公众号和视频号同时咨询的比较多。今天给大家分享下,微信公众号和微信视频号如何进行流量互通融合。 1,视频号...
    随机资讯
    2020-02-03
    南京小程序开发解析开发小程序商城的优势
    中小型新项目运营大城市问世后,很多公司已经运用中小型新项目运营大城市找寻大量的客户资料,因此中小型新项目运营大城市...
    2020-01-20
    南京小程序开发是怎么做商城小程序培养用户的几个技巧
    伴随着挪动互联网发展,很多企业期望根据开发设计自身的中小型企业程序流程,使自身的商品在中小型程序流程市场销售中,较大...
    2020-01-20
    南京小程序开发定做个小程序要多少钱
    处在it行业的人们想来对小程序的受欢迎之势早已有一定的掌握了。人们时时刻刻都能体会到它的受欢迎,跳一跳霸屏的那时候...
    2020-02-03
    南京小程序开发呼吁大家不要忽略小程序的新功能
    微信小程序不断创新和发展趋势,每一次升级,微信小程序常常让我们产生不一样的幸福。南京小程序开发呼吁人们应当更为关心...
    2020-02-13
    基于腾讯云对象存储的微信小程序图像上传功能南京小程序为您分享
    在使用腾讯云对象存储之前,该公司一直在使用传统的FTP上传模式。随着用户数量的增加,FTP暴露了越来越多的问题。1.传输效...