{"id":13806248,"url":"https://github.com/davidmarne/flutter_built_redux","last_synced_at":"2025-10-18T03:44:25.010Z","repository":{"id":54664456,"uuid":"91206236","full_name":"davidmarne/flutter_built_redux","owner":"davidmarne","description":"Built_redux provider for Flutter.","archived":false,"fork":false,"pushed_at":"2021-03-11T23:21:35.000Z","size":92,"stargazers_count":77,"open_issues_count":11,"forks_count":23,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-30T16:44:15.781Z","etag":null,"topics":["flutter","immutability","redux"],"latest_commit_sha":null,"homepage":null,"language":"Dart","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/davidmarne.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-13T22:25:55.000Z","updated_at":"2024-02-01T01:44:47.000Z","dependencies_parsed_at":"2022-08-13T23:10:50.871Z","dependency_job_id":null,"html_url":"https://github.com/davidmarne/flutter_built_redux","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/davidmarne/flutter_built_redux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidmarne%2Fflutter_built_redux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidmarne%2Fflutter_built_redux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidmarne%2Fflutter_built_redux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidmarne%2Fflutter_built_redux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidmarne","download_url":"https://codeload.github.com/davidmarne/flutter_built_redux/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidmarne%2Fflutter_built_redux/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266920148,"owners_count":24006705,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["flutter","immutability","redux"],"created_at":"2024-08-04T01:01:09.415Z","updated_at":"2025-10-18T03:44:19.963Z","avatar_url":"https://github.com/davidmarne.png","language":"Dart","funding_links":[],"categories":["框架","Dart","State management [🔝](#readme)","Frameworks"],"sub_categories":["Redux / ELM / 依赖注入","状态管理","State management","Redux / ELM / Dependency Injection"],"readme":"[![Pub](https://img.shields.io/pub/v/flutter_built_redux.svg)](https://pub.dartlang.org/packages/flutter_built_redux)\n[![codecov.io](http://codecov.io/github/davidmarne/flutter_built_redux/coverage.svg?branch=master)](http://codecov.io/github/davidmarne/flutter_built_redux?branch=master)\n\n# flutter_built_redux\n\n[built_redux] bindings for Flutter.\n\nBy creating a Widget that extends StoreConnector you get automatic subscribing to your redux store, and you component will only call setState when the store triggers and the values you take from the store in connect change!\n\n## Examples\n\n[counter example](example/example.dart)\n\n[todo_mvc], written by [Brian Egan]\n\n## Why you may need flutter_built_redux\n\nFor the same reason you would want to use redux with react.\n\nfrom the flutter tutorial:\n\n\u003e In Flutter, change notifications flow “up” the widget hierarchy by way of callbacks, while current state flows “down” to the stateless widgets that do presentation.\n\nFollowing this pattern requires you to send any state or state mutator callbacks that are common between your widgets down from some common ancestor.\n\nWith larger applications this is very tedious, leads to large widget constructors, and this pattern causes flutter to rerun the build function on all widgets between the ancestor that contains the state and the widget that actually cares about it. It also means your business logic and network requests live in your widget declarations.\n\n[built_redux] gives you a predicable state container that can live outside your widgets and perform logic in action middleware.\n\nflutter_built_redux lets a widget to subscribe to the pieces of the redux state tree that it cares about. It also lets lets widgets dispatch actions to mutate the redux state tree. This means widgets can access and mutate application state without the state and state mutator callbacks being passed down from its ancestors!\n\n[built_redux]: https://github.com/davidmarne/built_redux\n\n[todo_mvc]: https://gitlab.com/brianegan/flutter_architecture_samples/tree/master/example/built_redux\n\n[Brian Egan]: https://gitlab.com/brianegan\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidmarne%2Fflutter_built_redux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidmarne%2Fflutter_built_redux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidmarne%2Fflutter_built_redux/lists"}