BindingX 是阿里巴巴开源的一套基于 weex / React Native 的富交互解决方案。它提供了一种称之为 表达式绑定(Expression Binding) 的机制可以在 weex 上让手势等复杂交互操作以60fps的帧率流畅执行,而不会导致卡顿,因而带来了更优秀的用户体验。
weex / React Native
表达式绑定(Expression Binding)
由于 weex/RN框架底层使用的 JS-Native Bridge 具有天然的异步特性,这使得 JS 和 Native 之间的通信会有固定的性能损耗,因此在一些复杂的实时交互场景中(如手势),JS 代码很难以高帧率运行,这极大地限制了框架的能力。目前官方并没有很好的方式解决。
weex/RN
JS-Native Bridge
JS
Native
而我们通过探索,提出了一种全新的方式用来解决这个问题,方案称之为 Expression Binding 。它的核心思想是 将”交互行为”以表达式的方式描述,并提前预置到Native从而避免Native与JS频繁通信。
Expression Binding
复杂但流畅的交互效果
强大的表达式解析引擎
丰富的缓动函数
下面展示了一部分使用bindingx的示例。你可以下载或者编译playground app来获取更多的示例。同时,也可以在在线playground上编写自己的demo。
bindingx