页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

接下来要介绍的是DWF表单控件家族中一个“很能打”的成员——超级控件,它基本原理是直接将一个完整的html页面,或者是一个vue文件编译成html页面,放到DWF的后端Web服务器中,然后在表单里用iframe方式嵌入画布区里。接下来要介绍的是DWF表单控件家族中一个“很能打”的成员——超级控件(新版被改名为html),它基本原理是直接将一个完整的html页面,或者是一个vue文件编译成html页面,放到DWF的后端Web服务器中,然后在表单里用iframe方式嵌入画布区里。

Image Added

图-超级控件用法示意图

这使得超级控件可以将各种的效果嵌入到表单中,比如:日历、词云、地图、甚至三维模型嵌入进去,所以,叫它超级控件,比如这样的效果:

...

图-利用超级控件嵌入三维地球地图

或者,这样的效果

图-利用超级控件嵌入日历

“切~,不就是一个iframe嵌入嘛,有什么了不起“,一般有点”水平“的前端程序员们可能会这么觉得,事实上,自超级控件一开始的时候也就是这么一回事,但是“切~,不就是一个iframe嵌入嘛,有什么了不起“,一般有点”水平“的前端程序员们都能做,的确,自超级控件一开始的时候也就是这么一回事,但是....

你把超级控件想简单了,事实上,一放到实践中被甲方们按在地上摩擦,你就会发现一堆问题,比如:你把超级控件想简单了,一放到实践中被实际需求按在地上摩擦,你就会发现一堆问题,比如:

  • 我能在操作里给超级控件传递数据吗?
  • 我怎么将数据加载到这个超级控件里?
  • 超级控件能得到表单里的其他控件并且控制他们的行为吗?
  • 超级控件能够在用户点击的时候弹出你DWF的表单吗?

...

除了上面介绍的内容以外,DWF的表单引擎还为超级控件提供了一个收藏打包带走的能力,也就是说,你可以写一个超级控件,然后在其他表单里反复使用它,不仅如此,还可以把这个超级控件打包到模型包里,发给你小伙伴,是不是有种:“瞬间电翻一众小迷妹的感觉?”

最后,超级控件虽好,但也不要贪杯,下面看看使用超级控件的时候需要注意的地方:

首先,在超级控件的代码里如果出现了外部依赖,例如:需要某些互联网的内容,那么,超级控件在不能联网的环境下会出现失效,所以使用的时候要注意。

其次,超级控件使用的是iframe嵌入的方式完成展示,不能在表单里滥用,比如,一张表单里放100个超级控件,嵌入100个页面,这种做法可能会导致表单无法使用。