Skip to main content

SEGA

  • S: State - 状态
    • 表示系统或组件的当前状态。
    • 状态是整个模式的核心,用于存储当前的上下文信息。
    • 例如:
      • 用户是否已登录?
      • 当前购物车中有多少商品?
  • E: Effect - 副作用
    • 定义需要与外部系统交互的操作,例如网络请求、日志记录、读取或写入本地存储。
    • 副作用通常是异步的,它们会改变外部系统的状态。
    • 例如:
      • 调用 API 获取用户数据。
      • 将数据保存到数据库。
  • G: Guard - 守卫
    • 用于检查当前状态或输入是否合法,决定某些操作是否可以继续。
    • 守卫是业务逻辑的重要组成部分,它充当状态和动作之间的“过滤器”。
    • 例如:
      • 用户是否有权限执行某个操作?
      • 提交表单时,所有字段是否都有效?
  • A: Action - 动作
    • 具体的行为或操作,通常由事件触发,并可能引发状态更新或副作用。
    • 动作通常是系统响应用户输入或其他事件的结果。
    • 例如:
      • 用户点击按钮触发登录。
      • 在购物车中添加商品。

  • 事件触发/Action - 守卫检查/Guard - 状态更新/State - 副作用/Effect
  • 优点
    • 模块化
    • 可测试
    • 逻辑清晰
    • 适合复杂业务逻辑
特性SEGA PatternRedux
状态管理通过 State 模块管理使用全局 Store 管理
副作用管理使用 Effect 模块通常使用 Middleware 处理
守卫逻辑明确的 Guard 模块通过 Reducer 或 Middleware
动作触发明确的 Action 模块通过 Action Creator