第 87 期 - VSCode 依赖注入与组件实现解析
logoFRONTALK AI/1月19日 16:30/阅读原文

摘要

文章先介绍了 VSCode 的依赖注入架构,包括概念、相关操作等,然后阐述其组件实现,如组件通信、渲染方式等,还对比了 VSCode 原生开发模式与 React/Vue 开发模式的差异及原因

1. 依赖注入架构

1.1 依赖注入的背景与概念

class ServiceA {
  constructor(@IServiceB private _serviceB: ServiceB) {}
}
class ServiceB {
  constructor(@IServiceC serviceC: ServiceC) {}
}

1.2 VSCode 中的概念

// 先实现一个接口
interface ITestService {
  readonly _serviceBrand: undefined;
  test: () => void;
}
// 再创建一个 service id
const ITestService = createDecorator<ITestService>('test-service');
// 再创建 Service
class TestService implements ITestService {
  public readonly _serviceBrand: undefined;
  test() {
    //...
  }
}

1.2.1 接口的作用

1.2.2 createDecorator 的功能

1.2.3 InstantiationService 相关

1.2.4 createInstance 相关

2. 组件化实现

2.1 组件结构

2.2 Model 和 State

2.3 Widget

2.4 组件通信

2.5 与 React/Vue 开发模式对比

 

扩展阅读

Made by 捣鼓键盘的小麦 / © 2025 Front Talk 版权所有