要使用 Vue 調(diào)用遠(yuǎn)程 JS 文件,我們需要使用 Vue 的內(nèi)置方法 - Vue.loadScript,它可以在應(yīng)用程序運(yùn)行時(shí)動(dòng)態(tài)加載一個(gè)外部腳本文件。
Vue.loadScript 接收 URL 和可選配置選項(xiàng)作為參數(shù)。配置選項(xiàng)包括 async 屬性(表示是否異步加載腳本)、attributes 屬性(用于指定腳本的屬性)和其他傳遞給全局 fetch() 的屬性。
Vue.loadScript('https://example.com/remote-script.js', { async: true, attributes: { 'data-custom-attribute': 'true' }, credentials: 'include' }) .then(() =>{ // script loaded }) .catch(() =>{ // script load error })
調(diào)用 Vue.loadScript 后,會(huì)返回一個(gè) Promise,你可以在 Promise resolved 后執(zhí)行你的代碼。如果存在加載錯(cuò)誤,則 Promise 將被拒絕(rejected)。
當(dāng)你在應(yīng)用程序中使用遠(yuǎn)程腳本時(shí),有一些事情需要注意:
- 跨域資源共享(CORS)是一個(gè)問(wèn)題,必須在服務(wù)器端設(shè)置響應(yīng)頭以允許遠(yuǎn)程訪問(wèn)。
- 加載遠(yuǎn)程腳本可能會(huì)增加應(yīng)用程序的加載時(shí)間。因此,你需要考慮將代碼放在頁(yè)面的底部,以防止阻止首屏渲染。
- 不要將太多的代碼放在遠(yuǎn)程腳本中,因?yàn)檫h(yuǎn)程腳本可能會(huì)失效,導(dǎo)致應(yīng)用程序無(wú)法運(yùn)行。
使用 Vue.loadScript 可以讓你方便地動(dòng)態(tài)加載遠(yuǎn)程腳本,并且在腳本加載完成后執(zhí)行自己的代碼。但是,使用得當(dāng)是需要注意一些細(xì)節(jié)。