we-script 微信小程序加载远程 JavaScript 脚本开源项目

我要开发同款
匿名用户2020年09月21日
199阅读

技术信息

开源地址
https://github.com/bplok20010/we-script
授权协议
MIT

作品详情

让微信小程序支持加载远程JavaScript脚本并执行组件,支持ES5语法。

Github地址:https://github.com/bplok20010/we-script

使用

小程序如何使用pm包,官方文档:https://developers.weixi.qq.com/miiprogram/dev/devtools/pm.html

pmistall--savewe-script

step1安装完成后,点击开发者工具中的菜单栏:工具-->构建pm

step2安装完成后,点击开发者工具中的菜单栏:工具-->项目详情-->本地设置-->[勾选]使用pm模块

在需要用的页面或组件的jso文件添加声明,示例:

idex.jso

{"usigCompoets":{"we-script":"we-script"}}

idex.wxml

<we-scriptsrc="url"><view>hellowe-script<view></we-script>

注:多个we-script会并行加载及无序执行,无法保证执行顺序。如:

//并行加载及无序执行<we-scriptsrc="url1"/><we-scriptsrc="url2"/><we-scriptsrc="url3"/>

如需要确保执行顺序,应该使用数组,例如:

数组方式

<we-scriptsrc="{{[url1,url2,url3]}}"><view>hellowe-script<view></we-script>

we-script也支持嵌套,如:

<we-scriptsrc="url1"><we-scriptsrc="url2"><view>hellowe-script<view></we-script></we-script>

注意: 在嵌套的情况下we-script加载和执行也是并行且无序的,因为小程序生命周期触发机制(BUG?)导致,如果想在嵌套模式下保证顺序,需要自己手动控制,示例:

<we-scriptbid:oLoad="loadScript"src="url1"><we-scriptwx:if="url1_load_success"src="url2"><view>hellowe-script<view></we-script></we-script>

重要: 远程加载执行的代码所生成的函数,变量等数据存储在we-script默认的上下文中,可通过oLoad事件获取默认上下文,或通过oIit事件自定义上下文。

示例:

we-script-demo

we-script属性src

类型:strig|strig[]

要加载的远程脚本

text

类型:strig|strig[]

需要执行的JavaScript脚本字符串,text 优先级高于 src (互斥)

timeout

类型:umber默认值:60000 毫秒

设置每个远程脚本加载超时时间

cache

类型:boolea

默认值:true

是否启用加载缓存,缓存策略是以当前请求地址作为key,缓存周期为当前用户在使用期间的生命周期。

oce

类型:boolea

默认值:true

相同上下文及相同地址的脚本只执行一次。

we-script事件oIit

类型:(e)=>void

iterfaceOIitDetail{getCotext:()=>{};setCotext:(cotext:{})=>void;}

初始事件,监听该事件可获取当前执行上下文或自定义执行上下文。

示例:

//idex.js{oIit(e){//自定义执行上下文e.detail.setCotext({value:100})}}//idex.wxml<we-scriptsrc="url"bid:oIit="oIit"/>oLoad

类型:(e)=>void

iterfaceoLoadDetail{cotext:{};}

加载并执行成功后触发

oError

类型:(e)=>void

iterfaceoErrorDetail{error:ay;}

加载失败或执行错误后触发

其他

该组件使用eval5来解析JavaScript语法,支持 ES5

上生产环境前别忘记给需要加载的地址配置合法域名

we-script 内置类型及方法:

NaN;Ifiity;udefied;ull;Object;Array;Strig;Boolea;Number;Date;RegExp;Error;URIError;TypeError;RageError;SytaxError;RefereceError;Math;parseIt;parseFloat;isNaN;isFiite;decodeURI;decodeURICompoet;ecodeURI;ecodeURICompoet;escape;uescape;eval;Fuctio;cosole;setTimeout;clearTimeout;setIterval;clearIterval;wx;

内置类型和当前运行JavaScript环境相关,如环境本身不支持则不支持!

功能介绍

让微信小程序支持加载远程 JavaScript 脚本并执行组件,支持 ES5 语法。 Github地址:https://github.com/bplok20010/we-script 使用 小程...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论