微信小程序学习记录

1. 概念

  1. 渲染逻辑
    web页面的渲染线程(GUI渲染线程,重绘、回流时执行)和脚本线程(js引擎线程)互斥,但小程序与此不同,它的逻辑层和渲染层可以并行工作,逻辑层由jscore组成,渲染层则包含wxml模版和wxss样式。小程序总的来说是数据驱动,即jscore产生和处理数据,交给native(微信客户端),然后微信客户端通过多个webview渲染。
    逻辑层和渲染层通信模型图如下
    在这里插入图片描述
    在渲染层,宿主环境会把wxml转换成对应的js对象,在逻辑层数据变化时,宿主环境提供的setdata方法会把数据从逻辑层传递到渲染层,经过差异对比后,将差异应用到原来的dom树上,渲染出更新后的ui界面。

  2. 事件 key=“value”
    key以bind或catch开头,catch可以阻止事件向上冒泡,如果在bind和catch前加上capture- 则代表事件的捕获阶段,同理capture-catch则可以阻止事件捕获,并取消冒泡阶段。

  3. 微信登陆过程
    在这里插入图片描述

  4. 双线程模型

    • 技术选型:Hybrid技术,界面主要由成熟的web技术渲染,辅以大量的借口提供丰富的客户端原生能力。
    • 管控与安全:基于web技术渲染会存在诸如跳转、操作dom等非安全操作,所以提供一个没有任何浏览器相关接口的沙箱环境来运行开发者的js代码,得益于客户端系统有js的解释引擎,可以创建一个单独的线程去执行js,即逻辑层。
    • 天生延迟:任何数据传递都是线程间通信(逻辑层和渲染层),各层与客户端原生(native)交互也存在延时,故而存在一定延时。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值