{"id":13431002,"url":"https://github.com/dvajs/dva","last_synced_at":"2025-05-12T03:43:26.402Z","repository":{"id":38276374,"uuid":"61872036","full_name":"dvajs/dva","owner":"dvajs","description":"🌱 React and redux based, lightweight and elm-style framework. (Inspired by elm and choo)","archived":false,"fork":false,"pushed_at":"2024-05-10T02:09:39.000Z","size":1541,"stargazers_count":16242,"open_issues_count":26,"forks_count":3152,"subscribers_count":432,"default_branch":"master","last_synced_at":"2025-05-08T14:02:21.075Z","etag":null,"topics":["dva","elm","framework","redux","redux-saga"],"latest_commit_sha":null,"homepage":"https://dvajs.com/","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/dvajs.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-06-24T09:06:16.000Z","updated_at":"2025-05-05T11:33:11.000Z","dependencies_parsed_at":"2025-04-15T05:07:11.774Z","dependency_job_id":"33674b1f-1cb7-463a-ad9f-8589696e44c7","html_url":"https://github.com/dvajs/dva","commit_stats":{"total_commits":607,"total_committers":104,"mean_commits":5.836538461538462,"dds":"0.26688632619439867","last_synced_commit":"968da6a92a5891ab54cd82397b8ca22fa3498f67"},"previous_names":["sorrycc/dva"],"tags_count":199,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvajs%2Fdva","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvajs%2Fdva/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvajs%2Fdva/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvajs%2Fdva/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dvajs","download_url":"https://codeload.github.com/dvajs/dva/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253155635,"owners_count":21862729,"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":["dva","elm","framework","redux","redux-saga"],"created_at":"2024-07-31T02:00:59.707Z","updated_at":"2025-05-12T03:43:26.331Z","avatar_url":"https://github.com/dvajs.png","language":"JavaScript","readme":"English | [简体中文](./README_zh-CN.md)\n\n# dva\n\n[![codecov](https://codecov.io/gh/dvajs/dva/branch/master/graph/badge.svg)](https://codecov.io/gh/dvajs/dva)\n[![CircleCI](https://circleci.com/gh/dvajs/dva.svg?style=svg)](https://circleci.com/gh/dvajs/dva)\n[![NPM version](https://img.shields.io/npm/v/dva.svg?style=flat)](https://npmjs.org/package/dva)\n[![Build Status](https://img.shields.io/travis/dvajs/dva.svg?style=flat)](https://travis-ci.org/dvajs/dva)\n[![Coverage Status](https://img.shields.io/coveralls/dvajs/dva.svg?style=flat)](https://coveralls.io/r/dvajs/dva)\n[![NPM downloads](http://img.shields.io/npm/dm/dva.svg?style=flat)](https://npmjs.org/package/dva)\n[![Dependencies](https://david-dm.org/dvajs/dva/status.svg)](https://david-dm.org/dvajs/dva)\n[![Join the chat at https://gitter.im/dvajs/Lobby](https://img.shields.io/gitter/room/dvajs/Lobby.svg?style=flat)](https://gitter.im/dvajs/Lobby?utm_source=share-link\u0026utm_medium=link\u0026utm_campaign=share-link)\n\nLightweight front-end framework based on [redux](https://github.com/reactjs/redux), [redux-saga](https://github.com/redux-saga/redux-saga) and [react-router](https://github.com/ReactTraining/react-router). (Inspired by [elm](http://elm-lang.org/) and [choo](https://github.com/yoshuawuyts/choo))\n\n---\n\n## Features\n\n* **Easy to learn, easy to use**: only 6 apis, very friendly to redux users, and **API reduce to 0 when [use with umi](https://umijs.org/guide/with-dva.html)**\n* **Elm concepts**: organize models with `reducers`, `effects` and `subscriptions`\n* **Support HMR**: support HMR for components, routes and models with [babel-plugin-dva-hmr](https://github.com/dvajs/babel-plugin-dva-hmr)\n* **Plugin system**: e.g. we have [dva-loading](https://github.com/dvajs/dva/tree/master/packages/dva-loading) plugin to handle loading state automatically\n\n## Demos\n\n* [Count](https://stackblitz.com/edit/dva-example-count): Simple count example\n* [User Dashboard](https://github.com/dvajs/dva/tree/master/examples/user-dashboard): User management dashboard\n* [AntDesign Pro](https://github.com/ant-design/ant-design-pro)：([Demo](https://preview.pro.ant.design/))，out-of-box UI solution for enterprise applications\n* [HackerNews](https://github.com/dvajs/dva-hackernews):  ([Demo](https://dvajs.github.io/dva-hackernews/))，HackerNews Clone\n* [antd-admin](https://github.com/zuiidea/antd-admin): ([Demo](http://antd-admin.zuiidea.com/))，A admin dashboard application demo built upon Ant Design and Dva.js\n* [github-stars](https://github.com/sorrycc/github-stars): ([Demo](http://sorrycc.github.io/github-stars/#/?_k=rmj86f))，Github star management application\n* [Account System](https://github.com/yvanwangl/AccountSystem.git): A small inventory management system\n* [react-native-dva-starter](https://github.com/nihgwu/react-native-dva-starter): react-native example integrated dva and react-navigation\n\n## Quick Start\n\n* [Real project with dva](https://dvajs.com/guide/getting-started.html)\n* [dva intro course](https://dvajs.com/guide/introduce-class.html)\n\nMore documentation, checkout [https://dvajs.com/](https://dvajs.com/)\n\n## FAQ\n\n### Why is it called dva?\n\n\u003e D.Va’s mech is nimble and powerful — its twin Fusion Cannons blast away with autofire at short range, and she can use its Boosters to barrel over enemies and obstacles, or deflect attacks with her projectile-dismantling Defense Matrix.\n\n—— From [OverWatch](http://ow.blizzard.cn/heroes/dva)\n\n\u003cimg src=\"https://zos.alipayobjects.com/rmsportal/psagSCVHOKQVqqNjjMdf.jpg\" width=\"200\" height=\"200\" /\u003e\n\n### Is it production ready?\n\nSure! We have 1000+ projects using dva in Alibaba.\n\n### Does it support IE8?\n\nNo.\n\n## Next\n\nSome basic articles.\n\n* The [8 Concepts](https://github.com/dvajs/dva/blob/master/docs/Concepts.md), and know how they are connected together\n* [dva APIs](https://github.com/dvajs/dva/blob/master/docs/API.md)\n* Checkout [dva knowledgemap](https://github.com/dvajs/dva-knowledgemap), including all the basic knowledge with ES6, React, dva\n* Checkout [more FAQ](https://github.com/dvajs/dva/issues?q=is%3Aissue+is%3Aclosed+label%3Afaq)\n* If your project is created by [dva-cli](https://github.com/dvajs/dva-cli), checkout how to [Configure it](https://github.com/sorrycc/roadhog#configuration)\n\nWant more?\n\n* 看看 dva 的前身 [React + Redux 最佳实践](https://github.com/sorrycc/blog/issues/1)，知道 dva 是怎么来的\n* 在 gitc 分享 dva 的 PPT ：[React 应用框架在蚂蚁金服的实践](http://slides.com/sorrycc/dva)\n* 如果还在用 dva@1.x，请尽快 [升级到 2.x](https://github.com/sorrycc/blog/issues/48)\n\n## Community\n\n| Slack Group                                                  | Github Issue                                            | 钉钉群                                                       | 微信群                                                       |\n| ------------------------------------------------------------ | ------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |\n| [sorrycc.slack.com](https://join.slack.com/t/sorrycc/shared_invite/enQtNTUzMTYxNDQ5MzE4LTg1NjEzYWUwNDQzMWU3YjViYjcyM2RkZDdjMzE0NzIxMTg3MzIwMDM2YjUwNTZkNDdhNTY5ZTlhYzc1Nzk2NzI) | [umijs/umi/issues](https://github.com/umijs/umi/issues) | \u003cimg src=\"https://gw.alipayobjects.com/zos/rmsportal/jPXcQOlGLnylGMfrKdBz.jpg\" width=\"60\" /\u003e | \u003cimg src=\"https://img.alicdn.com/tfs/TB13U6aF6DpK1RjSZFrXXa78VXa-752-974.jpg\" width=\"60\" /\u003e |\n\n## License\n\n[MIT](https://tldrlegal.com/license/mit-license)\n","funding_links":[],"categories":["JavaScript","Official resources","react","框架","Redux","数据流","目录","Utilities","Documentation","Community","Frameworks"],"sub_categories":["React.js","macros","State Management","Github","Rest of the Pack","\u003ca id=\"state\"\u003e状态管理\u003c/a\u003e"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvajs%2Fdva","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdvajs%2Fdva","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvajs%2Fdva/lists"}