小程序开发文档-知识点小记(1)


小程序技术发展史

JS-SDK是对之前的WeixinJSBrige的一个包装,以及新能力的释放,并且由对内开放转为了对所有开发者开放;
微信Web资源离线存储是面向Web开发者提供的基于微信内的Web加速方案。

通过使用微信离线存储,Web开发者可借助微信提供的资源存储能力,直接从微信本地加载Web资源而不需要再从服务端拉取,从而减少网页加载时间,为微信用户提供更优质的网页浏览体验,每个公众号下所有WebApp累计最多可缓存5M的资源。

影响web体验的问题: 1 白屏 2 缺少操作的反馈

快速的加载
更强大的能力
原生的体验
易用且安全的微信数据开放
高效和简单的开发

小程序与普通网页开发的区别

网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序总,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览器暴露出来的DOM API,进行DOM选中和操作。而如上文所述,小程序的逻辑层和渲染层是分开的,逻辑层运行的JSCore中,并没有一个完成的浏览器对象,因而缺少相关的DOM API和BOM API;例如JQuery Zepto等,在小程序中是无法运行的。同时JSCore的环境同NodeJS环境也是不尽相同的,所以一些NPM的包在小程序中也是无法运行的。

JSON 配置

JSON文件在小程序代码中扮演静态配置的作用,在小程序运行之前就决定了小程序一些表现,需要注意的是小程序是无法在运行过程中动态更新JSON配置文件从而发生对应的变化的。

WXML 模板

WXML 是WeiXin Markup Language

要求标签必须是严格闭合的,没有闭合将会导致编译错误。WXML的属性是大小写敏感的。

wx:if是一个控制属性,需要将它添加到一个标签上,如果要一次性判断多个组件标签,可以使用一个标签将多个组件包装起来,并在上边使用wx:if控制属性。

列表渲染 wx:for
默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item。
使用wx:for-item 指定数组当前元素的变量名,使用wx:for-index指定数组当前下标的变量名
类似block wx:if ,也可以将wx:for 用在标签上,以渲染一个包含多节点的结构块。
如果列表中项目的位置会改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态,需要使用wx:key来指定列表中项目的唯一的标识符。

wx:key的值以两种形式提供:
1字符串,代表在for循环的array中item的某个property,该property的值需要是列表中唯一的字符串或数字,且不能动态改变。
2 保留关键字this代表在for循环中的item本身,这种表示需要item本身是一个唯一的字符串或者数字
当数据改变触发渲染层重新渲染的时候,会校正带有key的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。

WXML提供模板,可以在模板中定义代码片段,然后在不同的地方调用。使用name属性,作为模板的名字。然后在