[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3287":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},3287,"dva","dvajs\u002Fdva","dvajs","🌱 React and redux based, lightweight and elm-style framework. (Inspired by elm and choo)","",null,"JavaScript",16165,3111,426,23,0,3,5,1,45,"MIT License",false,"master",true,[5,26,27,28,29],"elm","framework","redux","redux-saga","2026-06-12 02:00:48","English | [简体中文](.\u002FREADME_zh-CN.md)\n\n# dva\n\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fdvajs\u002Fdva\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fdvajs\u002Fdva)\n[![CircleCI](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fdvajs\u002Fdva.svg?style=svg)](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fdvajs\u002Fdva)\n[![NPM version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fdva.svg?style=flat)](https:\u002F\u002Fnpmjs.org\u002Fpackage\u002Fdva)\n[![Build Status](https:\u002F\u002Fimg.shields.io\u002Ftravis\u002Fdvajs\u002Fdva.svg?style=flat)](https:\u002F\u002Ftravis-ci.org\u002Fdvajs\u002Fdva)\n[![Coverage Status](https:\u002F\u002Fimg.shields.io\u002Fcoveralls\u002Fdvajs\u002Fdva.svg?style=flat)](https:\u002F\u002Fcoveralls.io\u002Fr\u002Fdvajs\u002Fdva)\n[![NPM downloads](http:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fdva.svg?style=flat)](https:\u002F\u002Fnpmjs.org\u002Fpackage\u002Fdva)\n[![Dependencies](https:\u002F\u002Fdavid-dm.org\u002Fdvajs\u002Fdva\u002Fstatus.svg)](https:\u002F\u002Fdavid-dm.org\u002Fdvajs\u002Fdva)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Fdvajs\u002FLobby](https:\u002F\u002Fimg.shields.io\u002Fgitter\u002Froom\u002Fdvajs\u002FLobby.svg?style=flat)](https:\u002F\u002Fgitter.im\u002Fdvajs\u002FLobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link)\n\nLightweight front-end framework based on [redux](https:\u002F\u002Fgithub.com\u002Freactjs\u002Fredux), [redux-saga](https:\u002F\u002Fgithub.com\u002Fredux-saga\u002Fredux-saga) and [react-router](https:\u002F\u002Fgithub.com\u002FReactTraining\u002Freact-router). (Inspired by [elm](http:\u002F\u002Felm-lang.org\u002F) and [choo](https:\u002F\u002Fgithub.com\u002Fyoshuawuyts\u002Fchoo))\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:\u002F\u002Fumijs.org\u002Fguide\u002Fwith-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:\u002F\u002Fgithub.com\u002Fdvajs\u002Fbabel-plugin-dva-hmr)\n* **Plugin system**: e.g. we have [dva-loading](https:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva\u002Ftree\u002Fmaster\u002Fpackages\u002Fdva-loading) plugin to handle loading state automatically\n\n## Demos\n\n* [Count](https:\u002F\u002Fstackblitz.com\u002Fedit\u002Fdva-example-count): Simple count example\n* [User Dashboard](https:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva\u002Ftree\u002Fmaster\u002Fexamples\u002Fuser-dashboard): User management dashboard\n* [AntDesign Pro](https:\u002F\u002Fgithub.com\u002Fant-design\u002Fant-design-pro)：([Demo](https:\u002F\u002Fpreview.pro.ant.design\u002F))，out-of-box UI solution for enterprise applications\n* [HackerNews](https:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva-hackernews):  ([Demo](https:\u002F\u002Fdvajs.github.io\u002Fdva-hackernews\u002F))，HackerNews Clone\n* [antd-admin](https:\u002F\u002Fgithub.com\u002Fzuiidea\u002Fantd-admin): ([Demo](http:\u002F\u002Fantd-admin.zuiidea.com\u002F))，A admin dashboard application demo built upon Ant Design and Dva.js\n* [github-stars](https:\u002F\u002Fgithub.com\u002Fsorrycc\u002Fgithub-stars): ([Demo](http:\u002F\u002Fsorrycc.github.io\u002Fgithub-stars\u002F#\u002F?_k=rmj86f))，Github star management application\n* [Account System](https:\u002F\u002Fgithub.com\u002Fyvanwangl\u002FAccountSystem.git): A small inventory management system\n* [react-native-dva-starter](https:\u002F\u002Fgithub.com\u002Fnihgwu\u002Freact-native-dva-starter): react-native example integrated dva and react-navigation\n\n## Quick Start\n\nSee the [docs directory](.\u002Fdocs) for guides and API references.\n\n## FAQ\n\n### Why is it called dva?\n\n> 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:\u002F\u002Fow.blizzard.cn\u002Fheroes\u002Fdva)\n\n\u003Cimg src=\"https:\u002F\u002Fzos.alipayobjects.com\u002Frmsportal\u002FpsagSCVHOKQVqqNjjMdf.jpg\" width=\"200\" height=\"200\" \u002F>\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:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva\u002Fblob\u002Fmaster\u002Fdocs\u002FConcepts.md), and know how they are connected together\n* [dva APIs](https:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva\u002Fblob\u002Fmaster\u002Fdocs\u002FAPI.md)\n* Checkout [dva knowledgemap](https:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva-knowledgemap), including all the basic knowledge with ES6, React, dva\n* Checkout [more FAQ](https:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva\u002Fissues?q=is%3Aissue+is%3Aclosed+label%3Afaq)\n* If your project is created by [dva-cli](https:\u002F\u002Fgithub.com\u002Fdvajs\u002Fdva-cli), checkout how to [Configure it](https:\u002F\u002Fgithub.com\u002Fsorrycc\u002Froadhog#configuration)\n\nWant more?\n\n* 看看 dva 的前身 [React + Redux 最佳实践](https:\u002F\u002Fgithub.com\u002Fsorrycc\u002Fblog\u002Fissues\u002F1)，知道 dva 是怎么来的\n* 在 gitc 分享 dva 的 PPT ：[React 应用框架在蚂蚁金服的实践](http:\u002F\u002Fslides.com\u002Fsorrycc\u002Fdva)\n* 如果还在用 dva@1.x，请尽快 [升级到 2.x](https:\u002F\u002Fgithub.com\u002Fsorrycc\u002Fblog\u002Fissues\u002F48)\n\n## Community\n\n| Slack Group                                                  | Github Issue                                            | 钉钉群                                                       | 微信群                                                       |\n| ------------------------------------------------------------ | ------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |\n| [sorrycc.slack.com](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fsorrycc\u002Fshared_invite\u002FenQtNTUzMTYxNDQ5MzE4LTg1NjEzYWUwNDQzMWU3YjViYjcyM2RkZDdjMzE0NzIxMTg3MzIwMDM2YjUwNTZkNDdhNTY5ZTlhYzc1Nzk2NzI) | [umijs\u002Fumi\u002Fissues](https:\u002F\u002Fgithub.com\u002Fumijs\u002Fumi\u002Fissues) | \u003Cimg src=\"https:\u002F\u002Fgw.alipayobjects.com\u002Fzos\u002Frmsportal\u002FjPXcQOlGLnylGMfrKdBz.jpg\" width=\"60\" \u002F> | \u003Cimg src=\"https:\u002F\u002Fimg.alicdn.com\u002Ftfs\u002FTB13U6aF6DpK1RjSZFrXXa78VXa-752-974.jpg\" width=\"60\" \u002F> |\n\n## License\n\n[MIT](https:\u002F\u002Ftldrlegal.com\u002Flicense\u002Fmit-license)\n","dva 是一个基于 React 和 Redux 的轻量级前端框架，灵感来源于 Elm 和 Choo。它通过简洁的 API 设计（仅六个核心API，在与umi结合使用时可减少到零）使得学习和使用变得简单直观，特别适合熟悉 Redux 的开发者。该框架采用类似 Elm 的概念来组织模型，包括 reducers、effects 和 subscriptions，并且支持热模块替换(HMR)以提高开发效率。此外，dva 还提供了一个插件系统，如 dva-loading 插件可以自动处理加载状态。此框架适用于需要快速构建高效、可维护单页应用的各种场景，尤其是企业级应用或管理后台界面。",2,"2026-06-11 02:53:23","top_language"]