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.htmltaro-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
会并行加载及无序执行,无法保证顺序。如:// 并行加载及无序执行
globalContext
import TaroScript, { globalContext } from "taro-script";
globalContext.value
的值为 100
context
示例import TaroScript from "taro-script";
const app = getApp();
app.value
的值为 100
TaroScript
属性src
string | string[]
text
string | string[]
text
优先级高于 src
context
object
globalContext = {}
globalContext
timeout
number
默认值:10000
毫秒onExecSuccess
()=> void
onExecError
(err:Error)=> void
onLoad
() => void
text
存在时无效onError
(err: Error) => void
text
存在时无效fallback
React.ReactNode
cache
boolean
true
key
,缓存周期为当前用户在使用应用程序的生命周期。children
React.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
语法,支持 ES5
NaN,
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