这篇文章主要介绍基于芋头v3中js解释器组件的案例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Github地址
基于<代码>芋头v3 代码>开发,支持多端小程序动态加载远程JavaScript脚本并执行,<强>支持ES5语法强>
最近更新内容
- <李>新增<代码> useScriptContext 代码>获取当前执行上下文李> <李>参数名称调整:→李李缓存> <>缓存策略调整李> <李>新增<代码> 代码>文本属性,可直接传入js字符串李> <李> <代码> src 代码>支持数组,解决多层TaroScript嵌套问题李>
使用
npm安装,节省taro-script复制代码
从“进口TaroScript taro-script"; & lt; TaroScript文本=癱onsole.log (100 + 200)“;/祝辞;复制代码
从“进口TaroScript taro-script"; https://www.yisu.com/zixun/& lt; TaroScript src=" https://xxxxx/xx.js "> <视图>你好TaroScript 视图> ;复制代码
<强>注1 强>:同一<代码> taro-script> 代码只会执行一次,也就是在<代码> componentDidMount> 代码后执行,后续改变属性是无效的。示例
函数应用({url}) {//只会在第一次创建后加载并执行,后续组件的更新会忽略所有属性变动 返回& lt; TaroScript src=https://www.yisu.com/zixun/{url}/>; }复制代码
<强>注2 强>:多个<代码> taro-script> 代码会并行加载及无序执行,无法保证顺序。如:
//并行加载及无序执行 https://www.yisu.com/zixun/& lt; TaroScript src=" path2 "/>复制代码
<>强如需要确保执行顺序,应该使用数组或嵌套,例如:强>
<强>数组方式(建议)强>
& lt; TaroScript src=https://www.yisu.com/zixun/{[“path2”、“path3”,“path4”]}/>复制代码
或嵌套方式
& lt; TaroScript src=https://www.yisu.com/zixun/" path2 ">复制代码
<代码>中代码>
内置的全局执行上下文
进口TaroScript, {globalContext}从“taro-script"; & lt; TaroScript文本=皏ar值=https://www.yisu.com/zixun/100 "/>;复制代码
<强>此时<代码>中。价值> 代码的值为<代码> 100 代码> 强>
<>强自定义<代码> 代码>背景示例强>
从“进口TaroScript taro-script"; const应用=getApp (); & lt; TaroScript背景=={应用}文本“var值=https://www.yisu.com/zixun/100 "/>;复制代码
<强>此时<代码>应用程序。价值> 代码的值为<代码> 100 代码> 强>
<代码> TaroScript 代码>属性
<代码> src 代码>
类型:<代码>字符串| string[] 代码>
要加载的远程脚本
<代码>文本代码>
类型:<代码>字符串| string[] 代码>
需要执行JavaScript的脚本字符串,<代码> 代码>文本优先级高于<代码> src 代码>
<代码>上下文代码>
类型:<代码>对象代码>
默认值:<代码> globalContext={} 代码>
执行上下文,默认为<代码>中代码>
<代码>超时代码>
类型:<代码> 代码>数量默认值:<代码> 10000 代码>毫秒
设置每个远程脚本加载超时时间
<代码> onExecSuccess 代码>
类型:<代码>()=比;空白代码>
脚本执行成功后回调
<代码> onExecError 代码>
类型:<代码> (err:错误)=比;空白代码>
脚本执行错误后回调
<代码> onLoad 代码>
类型:<代码>()=比;空白代码>
脚本加载完且执行成功后回调,<代码> 代码>存文本在时无效
<代码> onError 代码>
类型:<代码> (err:错误)=比;空白代码>
脚本加载失败或脚本执行错误后回调,<代码> 代码>存文本在时无效
<代码>后备代码>
类型:<代码> React.ReactNode 代码>
脚本加载中,加载失败,执行失败的显示内容
<代码>缓存代码>
类型:<代码>布尔代码>
默认值:真正<代码> 代码>
是否启用加载缓存,缓存策略是已当前请求地址作为<代码>键> 代码,缓存周期为当前用户在使用应用程序的生命周期。