{"id":13511343,"url":"https://github.com/dobjs/dob-react","last_synced_at":"2025-08-02T00:32:23.264Z","repository":{"id":57213782,"uuid":"83494431","full_name":"dobjs/dob-react","owner":"dobjs","description":"React bindings for dob","archived":false,"fork":false,"pushed_at":"2019-02-28T14:01:58.000Z","size":267,"stargazers_count":37,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-11T21:33:20.214Z","etag":null,"topics":["dob","react","react-bindings"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/dobjs.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":"2017-03-01T00:48:17.000Z","updated_at":"2024-08-20T11:16:41.000Z","dependencies_parsed_at":"2022-08-28T21:41:15.624Z","dependency_job_id":null,"html_url":"https://github.com/dobjs/dob-react","commit_stats":null,"previous_names":["ascoders/dob-react","ascoders/dynamic-react"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobjs%2Fdob-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobjs%2Fdob-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobjs%2Fdob-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dobjs%2Fdob-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dobjs","download_url":"https://codeload.github.com/dobjs/dob-react/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228419606,"owners_count":17916772,"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":["dob","react","react-bindings"],"created_at":"2024-08-01T03:00:47.883Z","updated_at":"2024-12-06T06:07:56.767Z","avatar_url":"https://github.com/dobjs.png","language":"TypeScript","readme":"# dob-react \u0026middot; [![CircleCI Status](https://img.shields.io/travis/dobjs/dob-react/master.svg?style=flat)](https://travis-ci.org/dobjs/dob-react) [![npm version](https://img.shields.io/npm/v/dob-react.svg?style=flat)](https://www.npmjs.com/package/dob-react) [![code coverage](https://img.shields.io/codecov/c/github/dobjs/dob-react/master.svg)](https://codecov.io/github/dobjs/dob-react)\n\nReact bindings for dob.\n\nDesign idea from [Mobx Implementation](https://github.com/ascoders/blog/issues/16)\n\n## Install\n\n```bash\nnpm i dob-react\n```\n\n## Online demo\n\nHere is a basic [demo](https://jsfiddle.net/yp90Lep9/21/), and here is a [demo](https://jsfiddle.net/g19ehhgu/11/) with fractal.\n\n## Simple Usage\n\n```typescript\nimport { Provider, Connect } from 'dob-react'\n\n@Connect\nclass App extends React.Component \u003cany, any\u003e {\n    render() {\n        return (\n            \u003cspan\u003e{this.props.store.name}\u003c/span\u003e\n        )\n    }\n}\n\nReactDOM.render(\n    \u003cProvider store={{ name: 'bob' }}\u003e\n        \u003cApp /\u003e\n    \u003c/Provider\u003e\n, document.getElementById('react-dom'))\n```\n\n`Connect`: All parameters from outer Provider are injected into the wrapped components, and the component rerender when the variables used in the render function are modified(sync usage).\n\n## `Connect` all functions\n\n### Connect all\n\nConnect all from Provider's parameters, also is this example above.\n\n### Connect extra data\n\n\u003e Will also inject all parameters from outer Provider.\n\n```typescript\n@Connect({\n    customStore: {\n        name: 'lucy'\n    }\n})\nclass App extends React.Component \u003cany, any\u003e {}\n```\n\n### Map state to props\n\n\u003e Will also inject all parameters from outer Provider.\n\n```typescript\n@Connect(state =\u003e {\n    return {\n        customName: 'custom' + state.store.name\n    }\n})\nclass App extends React.Component \u003cany, any\u003e {}\n\nReactDOM.render(\n    \u003cProvider store={{ name: 'bob' }}\u003e \u003cApp /\u003e \u003c/Provider\u003e\n, document.getElementById('react-dom'))\n```\n\n### Support stateless component\n\n```typescript\nclass App extends React.Component \u003cany, any\u003e {\n    render() {\n        return (\n            \u003cspan\u003e{this.props.store.name}\u003c/span\u003e\n        )\n    }\n}\n\nconst ConnectApp = Connect()(App)\n// const ConnectApp = Connect({ ... })(App)\n// const ConnectApp = Connect( state =\u003e { ... })(App)\n```\n","funding_links":[],"categories":["react"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobjs%2Fdob-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdobjs%2Fdob-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdobjs%2Fdob-react/lists"}