Painter的使用心得
Painter的使用
关于Painter的使用可访问原github出处https://github.com/Kujiale-Mobile/Painter
里面很详细的介绍如何使用Painter这一插件,在这里就不多说了。
Painter和wxml-to-canvas的对比
我们都知道Painter和wxml-to-canvas,这两个都是小程序端绘制海报图的插件,个人来说更喜欢使用Painter。
-
- 首先Painter直接放在小程序组件中,需要时引用即可;
- 而wxml-to-canvas要先在项目中构建npm才能在小程序使用。
-
- 在上一篇文章讲wxml-to-canvas的使用心得中讲过,this.widget = this.selectComponent('.widget')是完成widget对象初始化的,但canvas生成是需要一定时间的,onload函数中widget对象还没有初始化完毕就去调用this.widget.renderToCanvas({wxml,style})将wxml模板和wxss样式绘制到canvas上 的话,会导致页面报错,每次使用 wxml-to-canvas创建一个canvas都要使用一次定时器,使用越多,存在的问题可能越大;
- 而Painter通过组件接收
palette
字段作为画图数据的数据源 ,根据 Palette 内容绘制出对应的图片后返回 ,无需调用一个定时器等待canvas生成。
-
- wxml-to-canvas的模板语法更接近小程序编写页面的语法;
- Painter的话wxml模板可能不太接近。
-
- wxml-to-canvas的可用的css属性很少,比较局限,而且目前wxml-to-canvas仅支持px一个尺寸
- Painter则更加灵活,增加了很多css属性,而且目前 Painter 中支持两种尺寸单位,px 和 rpx,代表的意思和小程序端中一致
-
-
wxml-to-canvas不支持动态模板
-
Painter支持动态模板,支持使用拖动等操作动态编辑绘制内容
-
综上所述,如果有海报图的需求,建议使用Painter
Painter的致命缺点
-
Painter不能在一个页面中创建太多canvas(大概只有四五张是正常的,具体不清楚),不然某些手机会造成canvas一片空白,但其实这个问题可能是由于小程序原生的canvas就不能够在同一个页面在创建太多的canvas,创建越多,问题越多。
-
目前Painter在iphoneXR会造成整体下移(原生canvas不会有这个问题,至于wxml-to-canvas会不会还不清楚),原因不清楚,作者也还未回复。
哈哈,感觉赞了Painter个寂寞,或许到头来反而是wxml-to-canvas更好用。