解决方案
- renderjs是运行在视图层的js,在视图层操作dom,运行for web的js库。
- 基本使用
- 设置 script 节点的 lang 为 renderjs,并为该节点设置module值进行命名
<script module="demo" lang="renderjs"> export default { methods: { chartDataHandler (value) { // value是监听的chartData数据 }, emitData (e, ownerInstance) { // 调用ownerInstance.callMethod,向逻辑层发送数据 // 逻辑层触发receiveRenderData函数接收 ownerInstance.callMethod('receiveRenderData', { data: 'fromRender' }) } } } </script>
- renderjs层与service层通信:
- service -> renderjs:在页面中监听指定数据,在其变化时自动触发renderjs的方法
- renderjs -> service:调用ownerInstance.callMethod,触发service层对应处理函数
<template> <!-- 监听chartData数据,该数据来源于逻辑层;toRender可以随便命名,但要和:change:[dataName]中dataName保持一致 :change: 当chartData发生变化时,调用renderjs中定义的chartDataHandler方法,demo和module中的命名对应 --> <view :toRender
- renderjs层与service层通信:
- 设置 script 节点的 lang 为 renderjs,并为该节点设置module值进行命名