使用 Injector 和 Provider 响应 Angular 中的原生服务
React Native services like in Angular with Injector and Provider
嘿,我正在测试几个用于混合移动开发的框架。总之我喜欢React Native比Angular多一点,但是我非常喜欢Injector和Provider的机制。拥有 class 的单个实例可能非常有用,但目前我不知道如何使用 React Native 实现这一点。我考虑过使用 AsyncStorage,但我对此并不满意。
关键问题:有没有办法在 React Native 的多个组件中使用同一个实例?
我想到了单例,但不知道如何实现。
React 只是给了你一个组件层。他们不提供依赖注入。您需要自己实现,并且实现起来非常困难,因为 Angular 为服务提供单个实例,无论您在多少地方使用服务。
对于类似模式的单例,您需要创建一个 class 并要求 class 为您提供一个服务实例。这个 class 会注意的。如果您的服务中已经存在一个对象,那么它将 return 现有对象,否则将创建一个新对象。
您可以使用 mobx。
参见此处示例:
https://github.com/PrioritySoftware/priority-master-react/.
我所做的是在 src/providers/index.ts 中定义我的提供程序,然后使用 Mobx 将实例传递给组件。
看看这两个文件:
1) src/app.tsx.
注入本身:https://github.com/PrioritySoftware/priority-master-react/blob/master/src/pages/main.page.tsx#L29.
我实际上是从 Angular 开始的,然后开始了解 React :)
嘿,我正在测试几个用于混合移动开发的框架。总之我喜欢React Native比Angular多一点,但是我非常喜欢Injector和Provider的机制。拥有 class 的单个实例可能非常有用,但目前我不知道如何使用 React Native 实现这一点。我考虑过使用 AsyncStorage,但我对此并不满意。 关键问题:有没有办法在 React Native 的多个组件中使用同一个实例?
我想到了单例,但不知道如何实现。
React 只是给了你一个组件层。他们不提供依赖注入。您需要自己实现,并且实现起来非常困难,因为 Angular 为服务提供单个实例,无论您在多少地方使用服务。 对于类似模式的单例,您需要创建一个 class 并要求 class 为您提供一个服务实例。这个 class 会注意的。如果您的服务中已经存在一个对象,那么它将 return 现有对象,否则将创建一个新对象。
您可以使用 mobx。
参见此处示例: https://github.com/PrioritySoftware/priority-master-react/.
我所做的是在 src/providers/index.ts 中定义我的提供程序,然后使用 Mobx 将实例传递给组件。
看看这两个文件:
1) src/app.tsx.
注入本身:https://github.com/PrioritySoftware/priority-master-react/blob/master/src/pages/main.page.tsx#L29.
我实际上是从 Angular 开始的,然后开始了解 React :)