想请问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产生的的内存消耗比例大概是多少?
只import文件无操作
静态
<tempalte is="a" />
(此种情况是否是”引入文件到内存而只执行渲染a的部分“?)
静态
<tempalte is="a" />
<tempalte is="b" />
<tempalte is="c" />
(此种情况是“引入文件到内存而只执行渲染abc的部分”还是执行三次引入文件并分别对三次文件执行渲染abc“?)
静态调用
<tempalte is="a" />
<tempalte is="a" />
<tempalte is="a" />
(此种情况究竟产生了几个jsx实例?开销估计为第二个的几倍?和第三个相比存不存在倍数差距?)
使用wxfor静态调用:
<block wx:for="{{ [1,2,3] }}">
<template is="a" />
</block>
此方式和第五个相比在调用10次的情况下内存占用反而更小是什么原因?
使用wxfor动态调用:
<block wx:for="{{x}}">
<template is="{{item}}" />
</block>
(此种情况是”只引入文件到内存而不执行渲染“还是不执行任何操作?)
// x = [‘a’, ‘b’, ‘a’, ‘c’]
实践中发现此方式内存消耗甚大,是何原因?有何方法优化?
希望能得到官方解答。