微信主要通过两种开发模式为用户提供更多生态体系内的信息与服务——公众号与小程序。

v2-520ea8e54e26328a9e526c722b854c1a_1440w.jpg

公众号用以沉淀用户,实现人与信息的链接,主要以文字内容和信息传递、轻量的服务为辅。而小程序是一个体验感优秀的工具,以工具性的产品与服务为主。

微信公众号与小程序的主要区别是:

  • 定位不同(公众号服务于营销与信息传递,小程序面向产品与服务)
  • 实现技术区别(公众号基于H5,小程序基于微信自身开发环境与开发语言)
  • 功能不同(公众号功能围绕信息展示与营销,小程序面向产品与服务)
  • 体验上的差别(公众号操作延时较大,小程序体验接近原生App)

微信公众号

微信通过 sdk 的形式,增强了开发者开发公众号网页的能力。微信公众号开发本质上是网站开发,并建立开发者服务器与微信服务的认证和通信,以在微信框架内处理目标用户的动作请求。

微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础。

开发者模式配置

分别在公众号后台和开发者服务器上进行配置,以建立开发者服务器与微信服务的相互认证和通信。

编写服务器业务逻辑

在开发者服务器上编写业务逻辑代码来处理微信服务器发送过来的信息。

微信小程序

2017年,微信推出“小程序”功能。小程序从业务形式上更像是公众号开发的演变产物,在微信的生态系统中实现各种服务功能,而不需要单独安装应用程序,从而重塑一个微信规则下的web。

MINA框架

微信团队为小程序提供的框架命名为MINA,MINA框架主要分为两大部分:

第一部分页面视图层,以给定的样式展现数据并反馈事件给逻辑层。开发者使用WXML(WeiXin Markup language)文件来搭建页面的基本视图结构(WXML是类似于HTML标签的语言和一系列基础组件),使用WXSS(WeiXin Style Sheet)文件来控制页面的表现样式(WXSS具有CSS大部分特性)。

.wxml文件用于组织页面的结构;
.wxss文件用于编写页面的样式;腾讯定制了一套 UI 框架 WeUI,而weui-wxss是为小程序量身设计。

第二部分AppService应用逻辑层,是MINA框架的服务中心,形式上是所有.js脚本文件的集合。通过微信客户端启动异步线程单独加载运行,页面渲染所需的数据、页面交互处理逻辑都在其中实现。小程序在逻辑层处理数据并发送至视图层,同时接受视图层发回的事件请求。

  • 程序注册:App()方法;
  • 页面注册:Page()方法;
  • 模块与调用;
  • 微信原生API

在逻辑层,包括一个数据层的概念,通过脚本改变页面,实现动态效果。小程序提供"数据绑定"(data binding)方法让页面可以更方便地使用脚本数据。所谓"数据绑定",指的是脚本里面的某些数据,会自动成为页面可以读取的全局变量,两者会同步变动。也就是说,脚本里面修改这个变量的值,页面会随之变化;反过来,页面上修改了这段内容,对应的脚本变量也会随之变化。这也叫做 MVVM 模式。

小程序的线程架构

典型的小程序包含一个描述整体程序的app实例和多个描述页面的page。

其中app由3个文件构成:

  • app.json 公共配置文件,对小程序进行全局配置。
  • app.wxss 公共样式文件,设置对所有页面有效。
  • app.js 主体逻辑文件,对整个小程序进行初始化。

额外的 project.config.json ,对项目进行配置,内容等同于微信开发者工具的项目详情。
额外的 sitemap.json ,配置小程序及其页面是否允许被微信索引。

page页面最多由4个文件构成:

  • page.jason 页面配置
  • page.wxml 页面结构
  • page.wxss 页面样式
  • page.js 页面主体逻辑

app.js和page.js中包含小程序在生命周期的每个阶段相应的事件。

程序配置

全局配置app.jason文件中包括页面路径(page)、窗口表现(window)、切换页签(tabBar)、网络超时设定(networkTimeout)、调试模式(debug)。而且并不是每一项配置都是必需的。

页面配置page.jason只能设置本页面的窗口表现,也就是只能设置window配置项的内容。page.jason文件中的window配置值将覆盖app.jason中的配置值。

👍

本文由 CulmartPlay 整理发布,参考 CC-BY-SA 3.0 协议共享,欢迎转载、引用或改编。
感谢您的支持,以共同推动STEM公益教育!

楼主残忍的关闭了评论