运行时动态引入JS文件(尚在开发环境)
1.添加方法 requireJSFiles
export function requireJSFiles (target, pathArr) {
return new Promise((resolve, reject) => {
requireJSFile(target, pathArr[0]).then(() => {
pathArr.shift()
if (pathArr.length === 0) { resolve(true) } else { requireJSFiles(target, pathArr).then(res => { if (res === true) resolve(true) }) }
})
})
}
- 实现方法 requireJSFile
function requireJSFile (target, path) {
return new Promise((resolve, reject) => {
let e = document.createElement('script')
e.type = 'text/javascript'
e.src = path
target.appendChild(e)
e.onload = e.onreadystatechange = function () {
if (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') {
resolve()
}
}
})
}
- 执行
requireJSFiles(document.body, ['/static/js/a.js', '/static/js/b.js', '/static/js/c.js']).then((res) => {
// 数组内的路径必须是运行状态可以访问到文件的路径
// dosomething
})
- 提示:如果有文件的先后依赖关系,按序写入数组即可,个人想的,水平较差,如果哪位大佬有高见,敬请指点