Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@little-saga/use-saga

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@little-saga/use-saga

Run little-saga inside a React component using React hooks.

  • 0.8.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

NPM Package

@little-saga/use-saga

使用 React hooks 特性 在一个组件的生命周期内运行 little-saga。

该类库提供了一个函数 useSaga,用于在一个 React 函数组件的生命周期内运行 saga。useSaga 像是 useReducer 的增强版,useSaga 在创建 redux-like 状态容器的同时会启动我们所提供的 saga;当组件卸载时,saga 会自动结束运行。

注意事项:

  • useSaga 是一个 React hook,使用 useSaga 需要符合 hook 的书写规则。
  • 该类库只能与 little-saga 一起使用,且要求 React 为支持 hooks 的版本(>= 16.7).

使用方式

import useSaga from '@little-saga/use-saga'

function OurReactComponent() {
  const [state, dispatch] = useSaga(options)

  // ... 其他代码 ...
}

参数 options 是一个对象,具体字段如下:

字段类型默认值含义
saga生成器函数必须字段所要执行的 saga 函数
args数组[]启动 saga 函数时所使用的参数
reducer函数x => x指定 state 如何响应 actions
initialState任意值undefined初始状态
initialAction任意合法的 actionundefined创建状态容器时用于初始化状态的 action
详见 useReducer 文档
customEnv任意值undefined指定 运行运行环境对象中的额外字段
详见 runSaga#options.customEnv
taskContext普通对象undefinedroot task 的初始 context
详见 runSaga#options.taskContext

useSaga 的返回值useReducer 的返回值相同,一般我们可以用数组解构的方式将其赋值给变量 statedispatchstate 表示当前状态容器的最新状态,dispatch 用于向状态容器 / saga 运行时派发 action。

使用举例

FAQs

Package last updated on 08 Feb 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc