首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

redux-thunk-3.1.0.zip

前端 893.3KB 15 需要积分: 1
立即下载

资源介绍:

Redux 的 Thunk 中间件。它允许编写带有内部逻辑的函数,这些函数可以与 Redux 存储的 dispatch 和 getState 方法交互。
# Redux Thunk Thunk [middleware](https://redux.js.org/tutorials/fundamentals/part-4-store#middleware) for Redux. It allows writing functions with logic inside that can interact with a Redux store's `dispatch` and `getState` methods. For complete usage instructions and useful patterns, see the [Redux docs **Writing Logic with Thunks** page](https://redux.js.org/usage/writing-logic-thunks). ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/reduxjs/redux-thunk/test.yml?branch=master) [![npm version](https://img.shields.io/npm/v/redux-thunk.svg?style=flat-square)](https://www.npmjs.com/package/redux-thunk) [![npm downloads](https://img.shields.io/npm/dm/redux-thunk.svg?style=flat-square)](https://www.npmjs.com/package/redux-thunk) ## Installation and Setup ### Redux Toolkit If you're using [our official Redux Toolkit package](https://redux-toolkit.js.org) as recommended, there's nothing to install - RTK's `configureStore` API already adds the thunk middleware by default: ```js import { configureStore } from '@reduxjs/toolkit' import todosReducer from './features/todos/todosSlice' import filtersReducer from './features/filters/filtersSlice' const store = configureStore({ reducer: { todos: todosReducer, filters: filtersReducer } }) // The thunk middleware was automatically added ``` ### Manual Setup If you're using the basic Redux `createStore` API and need to set this up manually, first add the `redux-thunk` package: ```sh npm install redux-thunk yarn add redux-thunk ``` The thunk middleware is the default export.
More Details: Importing the thunk middleware If you're using ES modules: ```js import thunk from 'redux-thunk' // no changes here 😀 ``` If you use Redux Thunk 2.x in a CommonJS environment, [don’t forget to add `.default` to your import](https://github.com/reduxjs/redux-thunk/releases/tag/v2.0.0): ```diff - const thunk = require('redux-thunk') + const thunk = require('redux-thunk').default ``` Additionally, since 2.x, we also support a [UMD build](https://unpkg.com/redux-thunk/dist/redux-thunk.min.js) for use as a global script tag: ```js const ReduxThunk = window.ReduxThunk ```
Then, to enable Redux Thunk, use [`applyMiddleware()`](https://redux.js.org/api/applymiddleware): ```js import { createStore, applyMiddleware } from 'redux' import thunk from 'redux-thunk' import rootReducer from './reducers/index' const store = createStore(rootReducer, applyMiddleware(thunk)) ``` ### Injecting a Custom Argument Since 2.1.0, Redux Thunk supports injecting a custom argument into the thunk middleware. This is typically useful for cases like using an API service layer that could be swapped out for a mock service in tests. For Redux Toolkit, the `getDefaultMiddleware` callback inside of `configureStore` lets you pass in a custom `extraArgument`: ```js import { configureStore } from '@reduxjs/toolkit' import rootReducer from './reducer' import { myCustomApiService } from './api' const store = configureStore({ reducer: rootReducer, middleware: getDefaultMiddleware => getDefaultMiddleware({ thunk: { extraArgument: myCustomApiService } }) }) // later function fetchUser(id) { // The `extraArgument` is the third arg for thunk functions return (dispatch, getState, api) => { // you can use api here } } ``` If you need to pass in multiple values, combine them into a single object: ```js const store = configureStore({ reducer: rootReducer, middleware: getDefaultMiddleware => getDefaultMiddleware({ thunk: { extraArgument: { api: myCustomApiService, otherValue: 42 } } }) }) // later function fetchUser(id) { return (dispatch, getState, { api, otherValue }) => { // you can use api and something else here } } ``` If you're setting up the store by hand, the named export `withExtraArgument()` function should be used to generate the correct thunk middleware: ```js const store = createStore(reducer, applyMiddleware(withExtraArgument(api))) ``` ## Why Do I Need This? With a plain basic Redux store, you can only do simple synchronous updates by dispatching an action. Middleware extends the store's abilities, and lets you write async logic that interacts with the store. Thunks are the recommended middleware for basic Redux side effects logic, including complex synchronous logic that needs access to the store, and simple async logic like AJAX requests. For more details on why thunks are useful, see: - **Redux docs: Writing Logic with Thunks** https://redux.js.org/usage/writing-logic-thunks The official usage guide page on thunks. Covers why they exist, how the thunk middleware works, and useful patterns for using thunks. - **Stack Overflow: Dispatching Redux Actions with a Timeout** http://stackoverflow.com/questions/35411423/how-to-dispatch-a-redux-action-with-a-timeout/35415559#35415559 Dan Abramov explains the basics of managing async behavior in Redux, walking through a progressive series of approaches (inline async calls, async action creators, thunk middleware). - **Stack Overflow: Why do we need middleware for async flow in Redux?** http://stackoverflow.com/questions/34570758/why-do-we-need-middleware-for-async-flow-in-redux/34599594#34599594 Dan Abramov gives reasons for using thunks and async middleware, and some useful patterns for using thunks. - **What the heck is a "thunk"?** https://daveceddia.com/what-is-a-thunk/ A quick explanation for what the word "thunk" means in general, and for Redux specifically. - **Thunks in Redux: The Basics** https://medium.com/fullstack-academy/thunks-in-redux-the-basics-85e538a3fe60 A detailed look at what thunks are, what they solve, and how to use them. You may also want to read the **[Redux FAQ entry on choosing which async middleware to use](https://redux.js.org/faq/actions#what-async-middleware-should-i-use-how-do-you-decide-between-thunks-sagas-observables-or-something-else)**. While the thunk middleware is not directly included with the Redux core library, it is used by default in our **[`@reduxjs/toolkit` package](https://github.com/reduxjs/redux-toolkit)**. ## Motivation Redux Thunk [middleware](https://redux.js.org/tutorials/fundamentals/part-4-store#middleware) allows you to write action creators that return a function instead of an action. The thunk can be used to delay the dispatch of an action, or to dispatch only if a certain condition is met. The inner function receives the store methods `dispatch` and `getState` as parameters. An action creator that returns a function to perform asynchronous dispatch: ```js const INCREMENT_COUNTER = 'INCREMENT_COUNTER' function increment() { return { type: INCREMENT_COUNTER } } function incrementAsync() { return dispatch => { setTimeout(() => { // Yay! Can invoke sync or async actions with `dispatch` dispatch(increment()) }, 1000) } } ``` An action creator that returns a function to perform conditional dispatch: ```js function incrementIfOdd() { return (dispatch, getState) => { const { counter } = getState() if (counter % 2 === 0) { return } dispatch(increment()) } } ``` ## What’s a thunk?! A [thunk](https://en.wikipedia.org/wiki/Thunk) is a function that wraps an expression to delay its evaluation. ```js // calculation of 1 + 2 is immediate // x === 3 let x = 1 + 2 // calculation of 1 + 2 is delayed // foo can be called later to perform the calculation // foo is a thunk! let foo = () => 1 + 2 ``` The term [originated](https://en.wikipedia.org/wiki/Thunk#cite_note-1) as a humorous past-tense version of "think". ## Composition Any return value from the inner function will be available as the return value of `dispatch` itself. This is convenient for orchestrating an asynchronous control flow with thunk action creators

资源文件列表:

redux-thunk-3.1.0.zip 大约有42个文件
  1. redux-thunk-3.1.0/
  2. redux-thunk-3.1.0/.babelrc.js 408B
  3. redux-thunk-3.1.0/.codesandbox/
  4. redux-thunk-3.1.0/.codesandbox/ci.json 109B
  5. redux-thunk-3.1.0/.editorconfig 1.07KB
  6. redux-thunk-3.1.0/.eslintrc 869B
  7. redux-thunk-3.1.0/.github/
  8. redux-thunk-3.1.0/.github/ISSUE_TEMPLATE/
  9. redux-thunk-3.1.0/.github/ISSUE_TEMPLATE/--bug-report.md 370B
  10. redux-thunk-3.1.0/.github/ISSUE_TEMPLATE/--feature-request.md 134B
  11. redux-thunk-3.1.0/.github/ISSUE_TEMPLATE/--support-question.md 94B
  12. redux-thunk-3.1.0/.github/workflows/
  13. redux-thunk-3.1.0/.github/workflows/test.yml 4.04KB
  14. redux-thunk-3.1.0/.gitignore 174B
  15. redux-thunk-3.1.0/.prettierrc.json 113B
  16. redux-thunk-3.1.0/.yarn/
  17. redux-thunk-3.1.0/.yarn/releases/
  18. redux-thunk-3.1.0/.yarn/releases/yarn-3.2.4.cjs 2.09MB
  19. redux-thunk-3.1.0/.yarnrc.yml 66B
  20. redux-thunk-3.1.0/CONTRIBUTING.md 228B
  21. redux-thunk-3.1.0/LICENSE.md 1.06KB
  22. redux-thunk-3.1.0/README.md 12.11KB
  23. redux-thunk-3.1.0/package.json 1.75KB
  24. redux-thunk-3.1.0/scripts/
  25. redux-thunk-3.1.0/scripts/writeGitVersion.mjs 427B
  26. redux-thunk-3.1.0/src/
  27. redux-thunk-3.1.0/src/index.ts 1.49KB
  28. redux-thunk-3.1.0/src/types.ts 3.4KB
  29. redux-thunk-3.1.0/test/
  30. redux-thunk-3.1.0/test/.eslintrc 401B
  31. redux-thunk-3.1.0/test/test.ts 2.72KB
  32. redux-thunk-3.1.0/test/tsconfig.json 159B
  33. redux-thunk-3.1.0/tsconfig.json 645B
  34. redux-thunk-3.1.0/tsup.config.ts 739B
  35. redux-thunk-3.1.0/typescript_test/
  36. redux-thunk-3.1.0/typescript_test/.eslintrc 415B
  37. redux-thunk-3.1.0/typescript_test/tsconfig.json 132B
  38. redux-thunk-3.1.0/typescript_test/typescript.ts 4.24KB
  39. redux-thunk-3.1.0/typescript_test/typescript_extended/
  40. redux-thunk-3.1.0/typescript_test/typescript_extended/tsconfig.json 169B
  41. redux-thunk-3.1.0/vitest.config.ts 452B
  42. redux-thunk-3.1.0/yarn.lock 107.68KB
0评论
提交 加载更多评论
其他资源 SM2258XT_SSV2-TLC_PKGT0506A_FWT0506A0_Beta.zip.001.zip
SM2258XT_SSV2-TLC_PKGT0506A_FWT0506A0_Beta.zip.001.zip
车辆管理系统(struts+hibernate+spring+oracle)
车辆管理系统(struts+hibernate+spring+oracle)
ATL Developer's Guide, 2nd Edition, Source Code
by Tom Armstrong Ron Patton ATL开发指南源码! 源码! 源码! 原书分为十三章:第一章引入了C++模板的概念;第二章详细介绍了组件对象模型(COM);第三章介绍了活动模板库(ATL)的概念和使用方法;第四章涉及接口的实现和线程之间的参数调度等细节问题;第五章探讨了代码复用的两种方法――包容和集合;第六章讨论了关于自动化的问题;第七章说明了事件和连接点的管理;第八章围绕ActiveX控件展开了详细的论述;第九章介绍了COM中的两种实体――枚举器和集合;第十章研究了COM里的线程管理;第十一章讨论了OLE DB同ATL之间的关系;第十二章介绍了两种GUI接口――对话框和视窗;最后一章解释了COM+的一些基本概念。
计算机一级考证理论测试题库.zip
计算机一级考证理论测试题库.zip
redux-thunk-3.0.0.zip
Redux 的 Thunk 中间件。它允许编写带有内部逻辑的函数,这些函数可以与 Redux 存储的 dispatch 和 getState 方法交互。
redux-thunk-3.0.1.zip
Redux 的 Thunk 中间件。它允许编写带有内部逻辑的函数,这些函数可以与 Redux 存储的 dispatch 和 getState 方法交互。
redux-thunk-3.0.0-beta.0.zip
Redux 的 Thunk 中间件。它允许编写带有内部逻辑的函数,这些函数可以与 Redux 存储的 dispatch 和 getState 方法交互。
redux-thunk-3.0.0-rc.0.zip
Redux 的 Thunk 中间件。它允许编写带有内部逻辑的函数,这些函数可以与 Redux 存储的 dispatch 和 getState 方法交互。