feat: 动态加载js文件
parent
2baca913ed
commit
31e99ef96e
@ -0,0 +1,13 @@
|
|||||||
|
const init = (params) => {
|
||||||
|
console.log('moduleA init');
|
||||||
|
};
|
||||||
|
|
||||||
|
const getData = (params) => {
|
||||||
|
console.log('moduleA getData');
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function (params) {
|
||||||
|
console.log('moduleA');
|
||||||
|
console.log(params);
|
||||||
|
return eval(params.type + '(params)');
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
const init = (params) => {
|
||||||
|
console.log('moduleB init');
|
||||||
|
};
|
||||||
|
|
||||||
|
const getData = (params) => {
|
||||||
|
console.log('moduleB getData');
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function (params) {
|
||||||
|
console.log('moduleB');
|
||||||
|
console.log(params);
|
||||||
|
return eval(params.type + '(params)');
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
<template>
|
||||||
|
<el-card> 动态导入js模块示例 </el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="jsx">
|
||||||
|
import { onMounted } from 'vue';
|
||||||
|
import dynamicImportModule from './index.js';
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: 'DynamicImport',
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
console.log(dynamicImportModule('moduleA', { name: 'dynamicModuleA', type: 'init' }));
|
||||||
|
});
|
||||||
|
|
||||||
|
const handleSymbolObject = () => {
|
||||||
|
const sym = Symbol('dynamicModuleA');
|
||||||
|
const obj = {
|
||||||
|
[sym]: 'dynamicModuleA',
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取对象的属性为Symbol类型方法
|
||||||
|
* 错误写法:
|
||||||
|
* for (const key in obj) {
|
||||||
|
* console.log(obj[key]);
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
const keys = Reflect.ownKeys(obj);
|
||||||
|
console.log(keys);
|
||||||
|
keys.forEach((key) => {
|
||||||
|
console.log(obj[key]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
Loading…
Reference in New Issue