{"id":15695909,"url":"https://github.com/lvhaohua/react-candee","last_synced_at":"2025-05-07T21:42:55.319Z","repository":{"id":57193563,"uuid":"134584211","full_name":"lvhaohua/react-candee","owner":"lvhaohua","description":"A react framework that encapsulates the redux.","archived":false,"fork":false,"pushed_at":"2020-12-05T15:18:38.000Z","size":64,"stargazers_count":30,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-28T09:39:59.546Z","etag":null,"topics":["react","react-redux","react-router-redux","react-router-v4","redux"],"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/lvhaohua.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-23T14:47:00.000Z","updated_at":"2020-12-05T15:18:40.000Z","dependencies_parsed_at":"2022-09-15T22:30:38.937Z","dependency_job_id":null,"html_url":"https://github.com/lvhaohua/react-candee","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvhaohua%2Freact-candee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvhaohua%2Freact-candee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvhaohua%2Freact-candee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvhaohua%2Freact-candee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lvhaohua","download_url":"https://codeload.github.com/lvhaohua/react-candee/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961810,"owners_count":21832189,"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":["react","react-redux","react-router-redux","react-router-v4","redux"],"created_at":"2024-10-03T19:05:21.887Z","updated_at":"2025-05-07T21:42:55.289Z","avatar_url":"https://github.com/lvhaohua.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# react-candee\nA react framework that encapsulates the redux.\n\n### API Introduction\n\n#### 1.defaults\n```js\n// initial config\nimport candee from 'candee';\n\ncandee.defaults({\n  initialState: '',\n  reducers: {},\n  addEffects: (effects)=\u003e{},\n  middlewares: [],\n  historyMode: '', // hash browser memory\n})\n```\n\n#### 2.render\n```js\n// render API encapsulates the redux provider and createStore\nimport { render } from 'candee';\nimport App from './views/App';\n//render \nrender(\u003cApp /\u003e, document.getElementById('root'));\n```\n\n#### 3.model\n```js\n// model template someModel.js \nexport default {\n  name: 'someModel',\n\n  initialState: {\n    a: '',\n    b: ''\n  },\n\n  reducers: {\n    reducerA(state, data) {\n      console.log(data);\n      return state;\n    }\n  },\n\n  effects: {\n    async effectA(data, getState) {\n     const newData =  await fetch('...');\n     actions.someModel.reducerA(newData);\n    }\n  }\n};\n```\n\n```js\n// inject model\nimport candee from 'candee';\nimport someModel from './models/someModel';\n\ncandee.model(someModel);\n```\n\n#### 4.actions\n\n```js\n// how to disptach \nimport {actions} from 'candee';\n\nactions.[modelName].[reducerName/effectName]\nactions.routing.[push/go/...]\n\n```\n\n#### 5.connect\n```js\n// App.jsx\nimport React, { Component } from 'react';\nimport { connect } from 'candee';\n\nclass App extends Component {\n  componentDidMount(){\n    actions.someModel.reducerA(data);\n  }\n  // render(){...}\n}\n\nexport default connect((state) =\u003e {\n  return {\n    states: state.someModel\n  };\n})(App);\n```\n\n#### 6.Router\n```js\nimport { Router, Route, Switch, Redirect } from 'candee';\nexport default () =\u003e (\n    \u003cRouter\u003e\n      \u003cSwitch\u003e\n        \u003cRoute path=\"/user\" component={...} /\u003e\n        \u003cRoute path=\"/\" component={...} /\u003e\n        \u003cRedirect to=\"/\" /\u003e\n      \u003c/Switch\u003e\n    \u003c/Router\u003e\n);\n```\n\n#### 7.dynamic\n```js\n  const routeConfig = {\n    model: () =\u003e [import(\"./model/login\"),import(\"./model/regist\")],\n    component: () =\u003e import(\"./routes/Login\")\n  };\n  \u003cRoute path=\"/login\" component={dynamic(routeConfig)} /\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvhaohua%2Freact-candee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flvhaohua%2Freact-candee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvhaohua%2Freact-candee/lists"}