当我们需要往cmp或者app引入js库时,一般会这样写:
<ltng:require scripts="{!$Resource.resourceName}" afterScriptsLoaded="{!c.afterScriptsLoaded}" />
这里需要注意的是:
1, afterScriptsLoaded在js中被调用时,cmp已经渲染加载好了。所以避免在里面写一些初始化的东西,以免js库没有加载出来而出现出错的问题。也不要将初始化方法强行写到<ltng:require>这个里面(初始化的js和引入的js库都是异步执行)。
2,resource只会被加载一次。
当需要引入多个js库时,可以这样写:
scripts="{!join(',', $Resource.jsLibraries + '/jsLibOne.js', $Resource.jsLibraries + '/jsLibTwo.js')}"
同样需要注意:
1,这些库加载顺序是按照排列顺序来的。
2,即便是在同一个cmp申明多次或不同cmp申明,都仅加载一次。
3,多个<ltng:require>的js库并行加载。