[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9110":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":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":36,"discoverSource":37},9110,"riverpod","rrousselGit\u002Friverpod","rrousselGit","A reactive caching and data-binding framework.   Riverpod makes working with asynchronous code a breeze.","https:\u002F\u002Friverpod.dev",null,"Dart",7292,1092,76,143,0,2,8,46,9,77.72,"MIT License",false,"master",[26,27,28,29,30,5,31,32],"dart","flutter","hacktoberfest","inheritedwidget","provider","service-locator","state-management","2026-06-12 04:00:43","\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fflutter.dev\u002Fdocs\u002Fdevelopment\u002Fpackages-and-plugins\u002Ffavorites\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FrrousselGit\u002Friverpod\u002Fmaster\u002Fresources\u002Fflutter_favorite.png\" width=\"100\" align=\"left\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FrrousselGit\u002Friverpod\u002Factions\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FrrousselGit\u002Friverpod\u002Fworkflows\u002FBuild\u002Fbadge.svg\" alt=\"Build Status\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Frrousselgit\u002Friverpod\">\u003Cimg src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Frrousselgit\u002Friverpod\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg\" alt=\"codecov\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frrousselgit\u002Friverpod\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Frrousselgit\u002Friverpod.svg?style=flat&logo=github&colorB=deeppink&label=stars\" alt=\"Star on Github\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-purple.svg\" alt=\"License: MIT\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FGSt793j6eT\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F765557403865186374.svg?logo=discord&color=blue\" alt=\"Discord\">\u003C\u002Fa>\n\n  \u003Cp>\n    \u003Ca href=\"https:\u002F\u002Fwww.netlify.com\">\n      \u003Cimg src=\"https:\u002F\u002Fwww.netlify.com\u002Fimg\u002Fglobal\u002Fbadges\u002Fnetlify-color-accent.svg\" alt=\"Deploys by Netlify\" \u002F>\n    \u003C\u002Fa>\n  \u003C\u002Fp>\n\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FrrousselGit\u002Friverpod\u002Fblob\u002Fmaster\u002Fresources\u002Ficon\u002FFacebook%20Cover%20A.png?raw=true\" width=\"100%\" alt=\"Riverpod\" \u002F>\n\u003C\u002Fp>\n\n---\n\nA reactive caching and data-binding framework. https:\u002F\u002Friverpod.dev\nRiverpod makes working with asynchronous code a breeze by:\n\n- Handling errors\u002Floading states by default. No need to manually catch errors\n- Natively supporting advanced scenarios, such as pull-to-refresh\n- Separating the logic from your UI\n- Ensuring your code is testable, scalable and reusable\n\n| riverpod         | [![pub package](https:\u002F\u002Fimg.shields.io\u002Fpub\u002Fv\u002Friverpod.svg?label=riverpod&color=blue)](https:\u002F\u002Fpub.dartlang.org\u002Fpackages\u002Friverpod)                 |\n| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |\n| flutter_riverpod | [![pub package](https:\u002F\u002Fimg.shields.io\u002Fpub\u002Fv\u002Friverpod.svg?label=flutter_riverpod&color=blue)](https:\u002F\u002Fpub.dartlang.org\u002Fpackages\u002Fflutter_riverpod) |\n| hooks_riverpod   | [![pub package](https:\u002F\u002Fimg.shields.io\u002Fpub\u002Fv\u002Friverpod.svg?label=hooks_riverpod&color=blue)](https:\u002F\u002Fpub.dartlang.org\u002Fpackages\u002Fhooks_riverpod)     |\n\nWelcome to [Riverpod] (anagram of [Provider])!\n\nFor learning how to use [Riverpod], see its documentation:\n\\>\\>\\> https:\u002F\u002Friverpod.dev \u003C\u003C\u003C\n\nLong story short:\n\n- Define network requests by writing a function annotated with `@riverpod`:\n\n  ```dart\n  @riverpod\n  Future\u003CString> boredSuggestion(Ref ref) async {\n    final response = await http.get(\n      Uri.https('boredapi.com', '\u002Fapi\u002Factivity'),\n    );\n    final json = jsonDecode(response.body);\n    return json['activity']! as String;\n  }\n  ```\n\n- Listen to the network request in your UI and gracefully handle loading\u002Ferror states.\n\n  ```dart\n  class Home extends ConsumerWidget {\n    @override\n    Widget build(BuildContext context, WidgetRef ref) {\n      final boredSuggestion = ref.watch(boredSuggestionProvider);\n      \u002F\u002F Perform a switch-case on the result to handle loading\u002Ferror states\n      return switch (boredSuggestion) {\n        AsyncData(:final value) => Text('data: $value'),\n        AsyncError(:final error) => Text('error: $error'),\n        _ => const Text('loading'),\n      };\n    }\n  }\n  ```\n\n## Contributing\n\nContributions are welcome!\n\nHere is a curated list of how you can help:\n\n- Report bugs and scenarios that are difficult to implement\n- Report parts of the documentation that are unclear\n- Fix typos\u002Fgrammar mistakes\n- Update the documentation or add examples\n- Implement new features by making a pull-request\n\n## Sponsors\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fraw.githubusercontent.com\u002FrrousselGit\u002Ffreezed\u002Fmaster\u002Fsponsorkit\u002Fsponsors.svg\">\n    \u003Cimg src='https:\u002F\u002Fraw.githubusercontent.com\u002FrrousselGit\u002Ffreezed\u002Fmaster\u002Fsponsorkit\u002Fsponsors.svg'\u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n[provider]: https:\u002F\u002Fgithub.com\u002FrrousselGit\u002Fprovider\n[riverpod]: https:\u002F\u002Fgithub.com\u002FrrousselGit\u002Friverpod\n[flutter_hooks]: https:\u002F\u002Fgithub.com\u002FrrousselGit\u002Fflutter_hooks\n[inheritedwidget]: https:\u002F\u002Fapi.flutter.dev\u002Fflutter\u002Fwidgets\u002FInheritedWidget-class.html\n[hooks_riverpod]: https:\u002F\u002Fpub.dev\u002Fpackages\u002Fhooks_riverpod\n[flutter_riverpod]: https:\u002F\u002Fpub.dev\u002Fpackages\u002Fflutter_riverpod\n","Riverpod 是一个响应式缓存和数据绑定框架，专为 Dart 和 Flutter 应用程序设计。它通过默认处理错误和加载状态、支持高级场景如下拉刷新、分离逻辑与UI以及确保代码的可测试性、可扩展性和可重用来简化异步代码的管理。适用于需要高效管理和响应数据变化的 Flutter 项目中，尤其是当应用涉及复杂的状态管理和异步操作时。","2026-06-11 03:21:17","top_language"]