渲染label时为什么一直创建canvas,如果用一个会有什么问题吗?

引擎系统文本的实现是先将文本绘制到 Canvas,然后再生成图片给 Label 组件使用。
Label._canvasPool = {

pool: [],

get () {

    let data = this.pool.pop();

    if (!data) {

        let canvas = document.createElement("canvas");

        let context = canvas.getContext("2d");

        data = {

            canvas: canvas,

            context: context

        }

        // default text info

        context.textBaseline = 'alphabetic';

    }

    return data;

},

put (canvas) {

    if (this.pool.length >= 32) {

        return;

    }

    this.pool.push(canvas);

}

};

引擎中创建的这个canvas,需要一直创建吗?

这是你摘录的源码?你没看到这是一个canvas池么,里面的canvas是重复利用的,虽然可能不止1个

是源码,嗯嗯,我知道。就是如果只用一个呢?只用一个来生成图片给组件使用。