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