如何在Vue.js中使用反射?
How to use reflection in Vue.js?
我有一个案例,我从 signalr 收到一条消息,我试图根据我在消息中获得的名称实例化一个对象。
我在 angularjs 中遇到过类似的情况,我们使用 $injector 解决了它,该 $injector 具有 $injector.get("Name") returns 我需要的对象。
Vue 没有提供可以帮助解决此问题的 DI 容器。基本上应该有一个映射将 类 或工厂函数链接到字符串标识符:
const servicesMap = {
Foo,
Bar
};
...
if (!Object.keys(servicesMap).includes(name))
throw ...
const Service = servicesMap[name];
const service = new Service();
考虑到可以从单个文件夹导入服务,这可以通过动态导入来完成:
const Service = require(`.../services/${name}`).default;
const service = new Service();
这取决于项目设置并自动禁用 services
的 treeshaking。
我有一个案例,我从 signalr 收到一条消息,我试图根据我在消息中获得的名称实例化一个对象。
我在 angularjs 中遇到过类似的情况,我们使用 $injector 解决了它,该 $injector 具有 $injector.get("Name") returns 我需要的对象。
Vue 没有提供可以帮助解决此问题的 DI 容器。基本上应该有一个映射将 类 或工厂函数链接到字符串标识符:
const servicesMap = {
Foo,
Bar
};
...
if (!Object.keys(servicesMap).includes(name))
throw ...
const Service = servicesMap[name];
const service = new Service();
考虑到可以从单个文件夹导入服务,这可以通过动态导入来完成:
const Service = require(`.../services/${name}`).default;
const service = new Service();
这取决于项目设置并自动禁用 services
的 treeshaking。