如何使用
前提条件
- 因为要用到ts的获取元数据的能力,所以需要安装
reflect-metada
的支持
shell
yarn add @abraham/reflection
yarn add @abraham/reflection
并且把这段代码放到入口引入,只需引入一次
typescript
import '@abraham/reflection'
import '@abraham/reflection'
- 安装依赖注入库
injection-js
, 以及本库
shell
yarn add injection-js vue3-oop
yarn add injection-js vue3-oop
- 设置
tsconfig.json
主要是涉及到装饰器以及类的设置
json
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"useDefineForClassFields": false,
}
}
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"useDefineForClassFields": false,
}
}
- Vite设置
由于vite内部使用esbuild编译ts, esbuild不支持元数据 metadata
, 所以需要使用tsc编译ts
shell
pnpm add @vue3-oop/plugin-vue-jsx -D
pnpm add @vue3-oop/plugin-vue-jsx -D
vite 插件配置
typescript
import vueJsx from '@vue3-oop/plugin-vue-jsx'
export default {
plugins: [vueJsx()]
}
import vueJsx from '@vue3-oop/plugin-vue-jsx'
export default {
plugins: [vueJsx()]
}
装饰器
有关装饰器的知识请阅读 https://www.typescriptlang.org/docs/handbook/decorators.html#decorators