微信小程式canvas與wx if的出現的問題

2021-09-25 21:25:27 字數 829 閱讀 8284

當使用wx:if="}"  去切換canvas 的消失與出現時,第一次渲染會成功

當關閉即設定showstatus為false,然後再次設定showstatus為true,會發現canvas 標籤出現,但是內容為空

1、this.setdata() 時,不要立刻執行渲染函式,設定乙個定時器,即

settimeout(this.ondrawcanvashandler,20)

大於20ms 就可以,但是這種做法不太保險,這個定時器的時候不確定

2、使用 hidden="}" 代替 wx:if

3、canvas 使用position,隱藏時,設定top/left/right/bottom 無限遠即可

hidden字面意思上就是隱藏,也就是當條件為true時隱藏內容,false時顯示內容;wx:if則剛好相反,當條件為true的時候顯示,為false時隱藏。

除了條件上的區別,還有最重要的一點區別是渲染過程:wx:if是動態區域性渲染的,就是說當條件變換的時候,它會將內容塊實時銷毀或者重新渲染。如果初始條件是false那麼它什麼都不做,當條件變成true的時候才開始區域性渲染;而hidden只是簡單控制塊的顯示和隱藏,一開始它就載入到頁面上了

wx:if的條件不斷變化就會不斷的渲染**塊,而hidden則只會在初始載入的時候渲染,那麼從效能上來說什麼情況下用wx:if什麼情況下用hidden就明顯了,如果頻繁切換條件的情況下,用hidden更好,如果條件不怎麼會改變則wx:if更好,這個也是官方建議的。

WeZRender 微信小程式Canvas增強元件

canvas增強元件,基於html5 canvas類庫zrender。wxml canvas js var wezrender require lib wezrender zr wezrender.zrender.init line canvas 1 375,600 資料驅動 利用wezrender...

微信小程式之canvas

initcanvas 複製 rem px 複製 opt.x opt.y x,y是矩形的起點 opt.w opt.h w,h是矩形的寬高 opt.color 顏色 ffffff opt.opacity 透明度 1 opt.fill 是否填充 false drawrect opt else ctx.re...

微信小程式canvas文字換行效果

我們在canvas上繪製多行文字的時候,不可能一行一行的繪製,這時就需要到了換行這個功能。文字換行 引數 1 canvas物件,2 文字 3 距離左側的距離 4 距離頂部的距離 5 不用管 6 文字的寬度 文字換行 引數 1 canvas物件,2 文字 3 距離左側的距離 4 距離頂部的距離 5 6...