请优化一以下代码每次打开页面画布内容为空onReady const ctx = wxcreateCanvasContextmyCanvas; thisctx = ctx; 从缓存中获取之前保存的数据 const savedData = wxgetStorageSynccanvasData; if savedData thissetData bh sa
onReady() {
const ctx = wx.createCanvasContext('myCanvas');
this.ctx = ctx;
// 从缓存中获取之前保存的数据
const savedData = wx.getStorageSync('canvasData');
if (savedData) {
this.setData({
bh: savedData.bh,
mc: savedData.mc,
arr1: savedData.arr1,
dw: savedData.dw,
date: savedData.date,
arr2: savedData.arr2,
zt: savedData.zt,
y: savedData.y,
clickCount: savedData.clickCount
});
this.setData({ rows: savedData.rows });
} else {
this.drawTable();
}
},
优化建议:
-
将wx.createCanvasContext('myCanvas')的创建和赋值放在onReady()函数外面,避免每次调用onReady()函数都创建一个新的CanvasContext对象。
-
使用解构赋值简化从缓存中获取的数据的赋值过程。
-
使用对象的扩展运算符简化setData()函数的调用。
-
将重复的代码提取为函数。
优化后的代码如下:
onReady() {
const ctx = this.ctx || wx.createCanvasContext('myCanvas');
this.ctx = ctx;
const savedData = wx.getStorageSync('canvasData');
if (savedData) {
const { bh, mc, arr1, dw, date, arr2, zt, y, clickCount, rows } = savedData;
this.setData({
bh,
mc,
arr1,
dw,
date,
arr2,
zt,
y,
clickCount,
rows
});
} else {
this.drawTable();
}
},
drawTable() { // 绘制表格的逻辑
原文地址: https://www.cveoy.top/t/topic/iiby 著作权归作者所有。请勿转载和采集!