所以我正在阅读Redux模式,虽然我知道它是如何工作的,但我不确定其确切目的。
为什么我不会创建一个全球范围内提供的服务类,每个类都可以设置和访问。
@Injectable()
export class SettingsService {
constructor() { }
public MyVariable: number = 20;
}
<p>
<label class="label">Adjust my variable</label>
<input class="slider" type="range" max="150" min="1" [(ngModel)]="settingService.RouteLength" /> {{settingService.MyVariable}}
</p>
<p>
与每个人都可以访问的类相比,实现redux模式还有什么额外的好处?
答案 0 :(得分:3)
Redux不仅仅是存储数据的中心位置。它是一个定向的数据流。 更多信息:http://fluxxor.com/what-is-flux.html
我将解释我的经历。我相信并在我的服务中使用了BehaviorSubject
并实现了代码。这非常乏味和令人困惑。
我使用与@ngrx/store
类似的redux
。它给了我这些优势:
预定义语法:语法清晰严谨。没有必要重新发明轮子,我立刻停止了对建筑的思考 并直接使用我的应用程序逻辑
松散耦合的代码:这对我来说是改变生活的方式。在我们的团队中 我们可以在不同的开发人员之间分享任务 完成他们的部分,而不依赖于其他开发人员。 单元测试也是独立的。能写服务,减速机, 效果,组件+ HTML代码独立。这就像一个奇迹。
Redux开发工具:使用Redux开发工具,我们可以前后移动,检查数据状态等,让生活更轻松。我们也可以 用它来演示UI。我通常回到州并展示如何 加载页面看起来像错误页面如何等,
不可变数据:由于数据仅在reducer上更新,因此可以轻松调试代码。相信我,即使是初级开发人员(有几个月的经验),我们也没有任何错误。它很直接。
这看起来很简单,但在开发体验方面却有很大的不同。
唯一的缺点是语法冗长,但看到一切正常运行感觉很好。