1.为什么要使用 renderjs
- 某些h5端使用的插件涉及到大量的dom操作,无法跨端使用。
- 直接运行在视图层,解决了视图层与逻辑层频繁通信导致的性能折损,让动画更流畅。
- renderjs是一种可以直接运行在视图层(webview)中的js技术,可以在视图层操作dom。
2.兼容性
App
H5
2.5.5+,仅支持vue
√
3.使用方式
设置 script 节点的 lang 为 renderjs
注意:**module=“openlayers” 中openlayers**这是一个自定义属性,用于指定脚本模块的名称或标识符,写什么都可以。
<script module="openlayers" lang="renderjs">
export default {
mounted() {
// ...
},
methods: {
// ...
}
}
</script>
4.注意事项
- 目前仅支持内联使用。
- 不要直接引用大型类库,推荐通过动态创建 script 方式引用。
- 可以使用 vue 组件的生命周期(不支持 beforeDestroy、destroyed、beforeUnmount、unmounted),不可以使用 App、Page 的生命周期
- 视图层和逻辑层通讯方式与WXS一致,另外可以通过 this.$ownerInstance 获取当前组件的 ComponentDescriptor 实例。
- this.$ownerInstance.callMethod() 仅支持调用逻辑层vue选项式中的 methods 中定义的方法。
- 注意逻辑层给数据时最好一次性给到渲染层,而不是不停从逻辑层向渲染层发消