正在开发字节版本小程序,基础是已经开发完成的微信版。

字节跳动开发工具的一键搬家功能还是很好用的,大部分微信小程序原生功能都能直接迁移到字节版。

微信版小程序开发的过程中使用了第三方组件Lin UI,迁移以后,发现有部分组件功能无法使用,“Lin UI 是基于 微信小程序原生语法 实现的组件库”,Lin UI的文档是这么介绍的。那么为什么一部分功能无法实行?

看了3天代码后,调整了大部分问题,现将字节小程序与微信小程序差异整理做个笔记。

写了一周字节小程序发现大部分功能接口和微信小程序是一样的,可能是因为字节小程序按照微信小程序来设计开发的,所以有很多微信小程序的新功能并未实行,之后一段时间,有可能会逐步完善实现这些差异功能,所以我将整理这个笔记的时间点记录下来。主要还是组件的一些新功能和特性。

以下是2020年9月存在差异的地方:

1、字节版组件没有 pageLifetimes字段 “组件所在页面的生命周期”,微信版2.2.3以后添加。使用当前的生命周期函数“ready”等,可以替代部分功能。

2、字节版组件没有 observers字段,“数据监听器”功能,微信版2.6.1添加。字节版可以通过properties对外属性中,某一属性的“observer”来监听传入组件数据的变化。

3、字节版组件没有 generic,组件的抽象节点功能,微信版1.9.6后支持。组件使用并不固定节点的功能,这种用法无法在字节版使用。

4、SelectorQuery NodesRef.fields(Object fields, function callback)获取节点的相关信息。需要获取的字段在fields中指定。
微信2.1.0的fields增加“computedStyle”属性,可以获得节点的样式内容。
字节版有该方法,但是没有“computedStyle”属性,样式固定的话只能直接使用样式值了。

5、字节版组件的 getRelationNodes 获得关联节点,方法为异步api。
微信版使用:

cosnt nodes = this.getRelationNodes('path/to/custom-li')

字节版使用

const t = await new Promise( n => this.getRelationNodes("../index-anchor/index", (t) => { n(t); }));

字节版需要用promise来传递异步消息。也不知道微信版开始就是这种写法,还是之前有更新。

以上就是最近遇到的字节小程序与微信小程序差异。熟悉ES6和微信小程序各个版本的话,这都不是什么很大问题。不过这两方面我都不熟,所以看了3天代码,不过提高很大。

其实这都是微信升级更新后,字节版还未借鉴到的功能,主要都是组件使用方面,微信小程序不断完善组件的功能,也不知道字节版什么时候能更新。


大尾狼
60 声望3 粉丝