微信小程序的页面粗略看与HTML类似,也是基于标记语言和样式渲染,而且多数css样式可以使用。实际上从视图层的角度来说,小程序与传统HTML5还是有明显的区别。
开发工具不同
区别于H5的开发工具+浏览器Device Mode预览的模式,小程序的开发基于自己的开发者工具,可以实现同步本地文件+开发调试+编译+预览+上传+发布等一整套流程。
开发语言不同。
小程序自己开发了一套WXML标记语言和WXSS样式语言,并非直接使用标准的HTML5+CSS3。
组件封装不同
小程序独立出来了很多原生APP的组件,在HTML5需要模拟才能实现的功能,小程序里可以直接调用组件。
小程序开发者工具
微信小程序的开发工具,基于MINA框架(现已取消该名称),现在官方公布的工具名为微信web开发者工具。小程序开发工具是一种基于Native System系统层的框架,由于并非运行在浏览器中,所以JavaScript在web中的一些诸如Document、Window等方法无法使用。
执行速度
从执行的速度方面,普通HTML5和小程序有哪些不同呢,下面是简单比较:
传统HTML5在加载的时候受限于网络环境,需要顺序加载HTML、CSS、JS,然后返回数据,最后渲染页面显示在浏览器中。用户经常需要等待很长时间,体验会受到影响。
相比之下,小程序的两个线程:Appservice Thread和View Thread会同时进行、并行加载,甚至Appservice Thread会更早执行,当视图线程加载完,通知Appservice,Appservice 会把准备好的数据用setData的方法返回给视图线程。
小程序的这种优化策略,可以减少用户的等待时间、加快小程序的响应速度。
语言层面的比较
标签的差异
WXML在语法上更接近XML语言,遵循SGML规范,区别于HTML语言随意的标签闭合方式,WXML语言必须包括开始标签和结束标签
小程序 | HTML5 | 说明 |
---|---|---|
<view> |
<div> |
默认样式 display:block |
<text> |
<h1>...<h6> <p> <span> |
<text> 具有长按选中的属性 |
<icon> |
<i class="icon"></i> |
<icon> 可以直接用微信组件默认的图标。 |
<input type="text"> |
<input /> |
|
<input type="checkbox"> |
<checkbox-group> <checkbox /> </checkbox-group> |
|
<input type="radio"> |
<radio-group> <radio /> </radio-group> |
文件引入
文件引入在模块化页面结构中非常有用。
WXML提供两种文件引入方式,import和include。区别在于:import可以引入定义好的template模板,模板是有作用域的;而include就是拷贝一个公用的代码片段到目标文件中,适合做公共页面片的拆分。
尺寸单位
WXSS支持的单位有px、rem和rpx,其中rem和rpx可以针对屏幕容器进行适配,px则为固定尺寸。
在iPhone6上,1rpx=0.5px。建议:开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。
在WXSS和WXML中定义的rpx单位最终会转换为在手机端可以识别的rem单位。
所以工程师拿到750的设计稿,在PS中量取的容器大小,可以直接定义为rpx,不需要进行2倍尺寸的换算。
view {
font-size: 26rpx;
width: 400rpx;
height: 400rpx;
}