{"id":29193225,"url":"https://github.com/woolyang/woox","last_synced_at":"2025-07-02T02:08:47.169Z","repository":{"id":57398970,"uuid":"132469329","full_name":"WoolYang/woox","owner":"WoolYang","description":"轻量便捷数据流管理封装库，基于react+redux-saga","archived":false,"fork":false,"pushed_at":"2018-06-28T12:39:44.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-25T22:17:30.800Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WoolYang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-07T14:05:17.000Z","updated_at":"2018-06-13T15:48:32.000Z","dependencies_parsed_at":"2022-09-12T05:41:03.592Z","dependency_job_id":null,"html_url":"https://github.com/WoolYang/woox","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/WoolYang/woox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoolYang%2Fwoox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoolYang%2Fwoox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoolYang%2Fwoox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoolYang%2Fwoox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WoolYang","download_url":"https://codeload.github.com/WoolYang/woox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoolYang%2Fwoox/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263061405,"owners_count":23407606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-02T02:08:45.592Z","updated_at":"2025-07-02T02:08:47.058Z","avatar_url":"https://github.com/WoolYang.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# woox\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://travis-ci.org/WoolYang/woox\"\u003e\n  \u003cimg src=\"https://travis-ci.org/WoolYang/woox.svg?branch=master\" alt=\"Travis CI Status\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/WoolYang/woox\"\u003e\n  \u003cimg src=\"https://codecov.io/gh/WoolYang/woox/branch/master/graph/badge.svg\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/woox\"\u003e\n  \u003cimg src=\"https://img.shields.io/npm/v/woox.svg\" alt=\"Version\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e \n\n轻量便捷数据流封装管理库，基于react+redux-saga\n\n## 1.安装\n npm install woox --save\n \n## 2.使用\n \n ```js\n  //index.js\n   import { App } from 'woox';\n   import * as Models from './models/index';\n   App.model(Models);\n   \n   App.run(Routes,document.getElementById('app'), true);\n ```\n woox集成react+redux-sagas完成大量配置工作,运行woox仅需引入App，调用model API加载models，run挂载组件即可。\n \n ```js\nimport { getCheckLogin } from '../../api/api';\nexport default {\n    namespace:'login',\n    state:  {\n        data: null,     \n        fetching: false,\n        fetched: false,\n        error: null\n    },\n    reducer: {\n        loginStart(state) {\n            return { ...state, fetching: true };\n        },\n        loginSuccess(state, { payload }) {\n            return { ...state, fetching: false, fetched: true, data: payload };\n        },\n        loginFailure(state, { payload }) {\n            return { ...state, fetching: false, error: payload };\n        }\n    },\n    effects: {\n        *loginRequest({ call, put }, { payload }) {\n            try {\n                yield put({ type: 'loginStart' });\n                const data = yield call(getCheckLogin, { ...payload });\n                yield put({ type: 'loginSuccess', payload: data });\n            } catch (e) {\n                yield put({ type: 'loginFailure', payload:e });\n            }\n        }\n    }\n};\n ```\n model文件整合了reducer和effects，减少胶水代码的同时保证了redux原汁原味的开发体验。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoolyang%2Fwoox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoolyang%2Fwoox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoolyang%2Fwoox/lists"}