第二天微信小程序技术架构特点
1、微信小程序在开发上的特点
腾讯为小程序提供了完整的编辑开发、运行调试、打包发布的环境,形成了完整的IDE。
小程序不是H5,它借鉴了很多前端开发的技术,用React实现视觉组件,用CMD的require作为面向对象的JavaScript,用Vue实现了标签式逻辑和数据绑定。
小程序用JS语言,XML、CSS语言编写程序代码,但是它用的并不是标准化的H5+CSS3+JS架构,它和Web架构基于W3C没有任何关系,它使用的是腾讯全新定义的技术规范和架构。
小程序不支持W3C的DOM规范,小程序的页面也不是基于Window、Document等JS内置对象。所以现有的Web第三方框架(Jquery、Zepto、UI类框架)都不能在小程序使用。小程序的JS在上下文中自带wx对象,也就是之前公众号开发中的js-sdk的主对象。
小程序的标签称为视觉组件,并不是基于HTML规范的,是腾讯全新定义的一套完整的标签库,只能运行在微信的浏览器下,所以我们以往运行在微信服务号、企业号或者通过浏览器访问的前端项目代码,无法直接移植到小程序。
小程序有自己的专有模型,吸收了主流前端的数据、样式、控制逻辑分离的理念,从规范上要求每个页面需要有同名的四个文件:index.js、index.json、index.wxml、index.wxss,各司其职。js文件采用标准的JavaScript语法规范,用于逻辑操作;json文件基于JSON语法规范,用于页面文件的配置;wxml文件基于XML语法规范,用于页面视觉组件的描述;wxss继承了标准CSS语法,用于WXML组件样式的定义。
小程序页面加载基于本地,不需要经过服务端请求,所有的页面跳转都不需要通过服务端交互。使小程序的执行效率大大提高,比服务号、企业号有更好的用户体验,操作流程度和反应速度也会更好。同时也意味着小程序在没有网络的环境下也可以使用,可以满足暂时断网或网络环境较差的场景需求,这是服务号和Web服务都无法实现的。
微信对于一些通用的用户操作和显示(等待图标、错误提示、结果展示)都提出了设计上的要求,形成了统一的规范,强制开发者按照规范标准做开发设计,一方面是为了用户体验,另一方面也限制了开发者创造性的发挥。
2、微信将支持的小程序分发模式
小程序的入口平台会出现在微信首页的导航栏按钮、发现页或聊天页面。除此之外,大量小程序分发将会集中在微信的搜索结果里。如何设置小程序搜索的标签属性,让小程序得到更多展示机会,涉及很多规范性要求,这将会是运营者重点思考的问题。
3、小程序给前端设计带来的变革
对于开发者:小程序兼容JS、XML、CSS语法规范,使开发门槛更低,开发一个程序将会变得简单。
对于用户来说:将会减轻手机应用的压力,避免资源浪费。小程序很难过的用户敏感权限,使用户使用手机更安全。同时也会降低用户获取应用的时间成本。