相關學習推薦:js影片教學
#Github位址
基於Taro v3
開發,支援多端小程式動態載入遠端JavaScript 腳本並執行,支援ES5 語法
useScriptContext
取得目前執行上下文text
屬性,可直接傳入js字串src
支援數組,解決多層TaroScript巢狀問題npm install --save taro-script复制代码
import TaroScript from "taro-script"; <TaroScript text="console.log(100+200)" />;复制代码
import TaroScript from "taro-script"; <TaroScript src="https://xxxxx/xx.js"> <View>Hello TaroScript</View> </TaroScript>;复制代码
註1:同一taro-script
只會執行一次,也就是在componentDidMount
後執行,後續改變屬性是無效的。範例
function App({ url }) { // 只会在第一次创建后加载并执行,后续组件的更新会忽略所有属性变动 return <TaroScript src={url} />; }复制代码
註 2:多個taro-script
會並行載入及無序執行,無法保證順序。如:
// 并行加载及无序执行 <TaroScript src="path1" /> <TaroScript src="path2" /> <TaroScript src="path3" />复制代码
如需要確保執行順序,應該使用陣列或嵌套,例如:
陣列方式(建議)
<TaroScript src={["path1", "path2", "path3"]} />复制代码
或巢狀方式
<TaroScript src="path1"> <TaroScript src="path2"> <TaroScript src="path3"></TaroScript> </TaroScript> </TaroScript>复制代码
globalContext
內建的全域執行上下文
import TaroScript, { globalContext } from "taro-script"; <TaroScript text="var value = 100" />;复制代码
此時globalContext. value
的值為100
自訂context
範例
import TaroScript from "taro-script"; const app = getApp(); <TaroScript context={app} text="var value = 100" />;复制代码
此時app.value
的值為100
#TaroScript
屬性
string | string[]
string | string[]
text 優先權高於
src
object
globalContext = {}##執行上下文,預設為
#類型:預設值:10000
# 毫秒設定每個遠端腳本載入逾時時間
#類型:腳本執行成功後回呼
#類型:腳本執行錯誤後回呼
型別:腳本載入完且執行成功後回調,
存在時無效
#類型:##腳本載入失敗或腳本執行錯誤後回調,
存在時無效
類型:腳本載入中、載入失敗、執行失敗的顯示內容
類型:預設值:
是否啟用載入緩存,快取策略是已目前請求位址作為
,快取週期為目前使用者在使用應用程式的生命週期。
類型:#載入完成後顯示的內容,支援傳入
第一個參數為腳本執行的上下文
取得目前執行上下文hookimport TaroScript, { useScriptContext } from "taro-script"; <TaroScript text="var a= 100"> <Test /> </TaroScript>; function Test() { const ctx = useScriptContext(); return ctx.a; // 100 }复制代码evalScript(code: string, context?: {})
動態執行給定的字串腳本,並傳回最後一個表達式的值import { evalScript } from "taro-script"; const value = evalScript("100+200"); // 300复制代码
其他
語法,支援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') } <TaroScript text="hello()"></TaroScript>;复制代码
或自訂上下文
import TaroScript from "taro-script"; const ctx = { hello(){ console.log('hello taro-script') } } <TaroScript context={ctx} text="hello()"></TaroScript>;复制代码想了解更多程式設計學習,請關注
php培訓
以上是taro-script 0.4 發布,了解基於Taro v3的js解釋器元件的詳細內容。更多資訊請關注PHP中文網其他相關文章!