想问一下小程序框架具体对template的实现方法
发布于 7 年前 作者 junshi 10743 次浏览 来自 问答

想请问template在小程序框架中是如何实现的?因为了解到小程序的视图层也是通过js来生成的,所以想请教一下小程序框架对以下情景的处理方式。

如果我想优化内存应该怎么着手?

目前小程序运行时消耗内存比较大。

举例如下:

有一个a.wxml结构如下:

    <tempalte name=“a”>

    大量的wxml…

    </template>

    <tempalte name=“b”>

    大量的wxml…

    </template>

    <tempalte name=“c”>

    大量的wxml…

    </template>

    <tempalte name=“d”>

        大量的wxml…

    </template>

    <tempalte name=“e”>

        大量的wxml…

    </template>

那么一个页面b.wxml在开头<import src=“a” />后分别以如下方式调用时实际关于调用template产生的的内存消耗比例大概是多少?

  1. 只import文件无操作

  2. (此种情况是”只引入文件到内存而不执行渲染“还是不执行任何操作?)

  3. 静态

    <tempalte is="a" />

    (此种情况是否是”引入文件到内存而只执行渲染a的部分“?)

  4. 静态

    <tempalte is="a" />

    <tempalte is="b" />

    <tempalte is="c" />

    (此种情况是“引入文件到内存而只执行渲染abc的部分”还是执行三次引入文件并分别对三次文件执行渲染abc“?)

  5. 静态调用

    <tempalte is="a" />

    <tempalte is="a" />

    <tempalte is="a" />

    (此种情况究竟产生了几个jsx实例?开销估计为第二个的几倍?和第三个相比存不存在倍数差距?)

  6. 使用wxfor静态调用:

    <block wx:for="{{ [1,2,3] }}">

    <template is="a" />

    </block>

    此方式和第五个相比在调用10次的情况下内存占用反而更小是什么原因?

  7. 使用wxfor动态调用:

    <block wx:for="{{x}}">

    <template is="{{item}}" />

    </block>

        // x = [‘a’, ‘b’, ‘a’, ‘c’]

        实践中发现此方式内存消耗甚大,是何原因?有何方法优化?

    希望能得到官方解答。

回到顶部