在我的公司,我们有 3 个应用程序,1 个 ng8、1 个 vue 和一个新的 react。
我正在寻找一种编写共享核心库的方法,以将我们的公共服务(登录、身份验证、存储等)放在那里,这些服务是常见的并且与 DOM 无关(主要是对我们 API 的 HTTP 调用)。
它目前是用 Angular 编写的,并且喜欢内置的 DI,因为它们相互使用。
这个想法是用 vanilla javascript 编写它以允许所有框架使用它。
更新:
当前简化的角度实现:
//file: auth.service.ts:
export class AuthService {
setCred(uname: string, token: string) {
}
getCred() {
}
}
//file: login.service.ts:
import { AuthService } from './auth.service';
export class LoginService {
constructor(private http: HttpClient, private authService: AuthService) {
}
login(email: string, pass: string): Observable {
return this.http.post('/login', {email, pass}).subscribe(response => {
this.authService.setCred(response.uname, response.token);
}
}
}
}
我希望能够像这样在 Angular 应用程序中使用这两种服务:
@Injectable({
providedIn: 'root'
})
export class FeatureService {
constructor(
private httpClient: HttpClient,
private authService: AuthService,
private userService: UserService
) {
console.log('feature service init', authService.getCred());
}
}
这种要求有已知的方法吗?
我仍然想在图书馆里促进 DI。
我将如何以角度使用此类服务?
我需要将它们包装在 Angular 服务中吗?
蓝山帝景
芜湖不芜
相关分类