收藏
回答

想问一下小程序框架具体对template的实现方法

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 template 客户端 最新版 2.5.2

想请问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']

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



    希望能得到官方解答。

最后一次编辑于  02-03  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答