Redux提供的优势只是创建一个可以全局访问的类?

时间:2017-06-14 04:53:02

标签: angular redux

所以我正在阅读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模式还有什么额外的好处?

1 个答案:

答案 0 :(得分:3)

Redux不仅仅是存储数据的中心位置。它是一个定向的数据流。 更多信息:http://fluxxor.com/what-is-flux.html

我将解释我的经历。我相信并在我的服务中使用了BehaviorSubject并实现了代码。这非常乏味和令人困惑。

我使用与@ngrx/store类似的redux。它给了我这些优势:

  1. 预定义语法:语法清晰严谨。没有必要重新发明轮子,我立刻停止了对建筑的思考 并直接使用我的应用程序逻辑

  2. 松散耦合的代码:这对我来说是改变生活的方式。在我们的团队中 我们可以在不同的开发人员之间分享任务 完成他们的部分,而不依赖于其他开发人员。 单元测试也是独立的。能写服务,减速机, 效果,组件+ HTML代码独立。这就像一个奇迹。

  3. Redux开发工具:使用Redux开发工具,我们可以前后移动,检查数据状态等,让生活更轻松。我们也可以 用它来演示UI。我通常回到州并展示如何 加载页面看起来像错误页面如何等,

  4. 不可变数据:由于数据仅在reducer上更新,因此可以轻松调试代码。相信我,即使是初级开发人员(有几个月的经验),我们也没有任何错误。它很直接。

  5. 这看起来很简单,但在开发体验方面却有很大的不同。

    唯一的缺点是语法冗长,但看​​到一切正常运行感觉很好。