taro-script 0.4 发布,基于Taro v3的js解释器组件
2021-01-02 23:29
标签:tar 表达式 chm rip 类型 ini nim 加载 nes Github地址 基于 注 1:同一 注 2:多个 如需要确保执行顺序,应该使用数组或嵌套,例如: 数组方式(建议) 或 嵌套方式 内置的全局执行上下文 此时 自定义 此时 类型: 要加载的远程脚本 类型: 需要执行的 JavaScript 脚本字符串, 类型: 默认值: 执行上下文,默认为 类型: 设置每个远程脚本加载超时时间 类型: 脚本执行成功后回调 类型: 脚本执行错误后回调 类型: 脚本加载完且执行成功后回调, 类型: 脚本加载失败或脚本执行错误后回调, 类型: 脚本加载中、加载失败、执行失败的显示内容 类型: 默认值: 是否启用加载缓存,缓存策略是已当前请求地址作为 类型: 加载完成后显示的内容,支持传入 获取当前执行上下文 hook 动态执行给定的字符串脚本,并返回最后一个表达式的值 该组件使用eval5来解析 上生产环境前别忘记给需要加载的地址配置合法域名 TaroScript 内置类型及方法: 内置类型和当前运行 JavaScript 环境相关,如环境本身不支持则不支持! 导入自定义方法或类型示例: 或自定义上下文 taro-script 0.4 发布,基于Taro v3的js解释器组件 标签:tar 表达式 chm rip 类型 ini nim 加载 nes 原文地址:https://www.cnblogs.com/bplok20010/p/13656436.html
taro-script
Taro v3开发,支持多端小程序动态加载远程 JavaScript 脚本并执行,支持 ES5 语法最近更新内容
useScriptContext获取当前执行上下文useCache -> cachetext属性,可直接传入js字符串src支持数组,解决多层TaroScript嵌套问题Usage
npm install --save taro-script
import TaroScript from "taro-script";
import TaroScript from "taro-script";
taro-script只会执行一次,也就是在componentDidMount后执行,后续改变属性是无效的。示例function App({ url }) {
// 只会在第一次创建后加载并执行,后续组件的更新会忽略所有属性变动
return taro-script会并行加载及无序执行,无法保证顺序。如:// 并行加载及无序执行
globalContextimport TaroScript, { globalContext } from "taro-script";
globalContext.value 的值为 100context示例import TaroScript from "taro-script";
const app = getApp();
app.value 的值为 100
TaroScript 属性srcstring | string[]textstring | string[]text 优先级高于 srccontextobjectglobalContext = {}globalContexttimeoutnumber
默认值:10000 毫秒onExecSuccess()=> voidonExecError(err:Error)=> voidonLoad() => voidtext存在时无效onError(err: Error) => voidtext存在时无效fallbackReact.ReactNodecachebooleantruekey,缓存周期为当前用户在使用应用程序的生命周期。childrenReact.ReactNode | ((context: T) => React.ReactNode)函数第一个参数为脚本执行的上下文useScriptContext()import TaroScript, { useScriptContext } from "taro-script";
evalScript(code: string, context?: {})import { evalScript } from "taro-script";
const value = evalScript("100+200"); // 300
其他
JavaScript语法,支持 ES5NaN,
Infinity,
undefined,
null,
Object,
Array,
String,
Boolean,
Number,
Date,
RegExp,
Error,
URIError,
TypeError,
RangeError,
SyntaxError,
ReferenceError,
Math,
parseInt,
parseFloat,
isNaN,
isFinite,
decodeURI,
decodeURIComponent,
encodeURI,
encodeURIComponent,
escape,
unescape,
eval,
Function,
console,
setTimeout,
clearTimeout,
setInterval,
clearInterval,
import TaroScript, { globalContext } from "taro-script";
globalContext.hello = function(){
console.log(‘hello taro-script‘)
}
import TaroScript from "taro-script";
const ctx = {
hello(){
console.log(‘hello taro-script‘)
}
}
下一篇:JS 移除对象值
文章标题:taro-script 0.4 发布,基于Taro v3的js解释器组件
文章链接:http://soscw.com/index.php/essay/39691.html