我正在寻找像Mobx for Python 这样的响应式状态库,即位于 Web 应用程序的服务器端而不是客户端。
Mobx 与像RxPY这样的经典反应式库类似,但有不同的重点:它不太关注低级事件调度,而是对数据更改做出反应,重新计算派生值(但仅限于那些受影响的值,并且对非观察到的相关值)。Mobx 自动确定计算值的依赖关系。
此外,Vue框架内置了此类功能,具有更好的语法,与框架紧密相关,具有优点(也有缺点)。
唉,两者都是 JavaScript 并且针对客户端/用户界面。
所以我的具体问题是:
python messaging webserver state-management reactive-programming
试图围绕创建一个具有状态mgmt Ngrx的角度节点模块.
我一直在使用本指南构建节点模块:https://medium.com/@nikolasleblanc/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e
目前坚持引入ngrx子状态,所以当我从NPM我的模块下载时,我可以某种方式定义为我的主应用程序状态mgmt的一部分.
据我了解,我可以以某种方式做到这一点,使用/设置ModuleWithProviders
有关于React钩子的炒作.太多的信息,我仍然不知道:钩子的出现是否意味着像Redux这样的库可以被扔到垃圾箱里?
到目前为止,我所理解的是钩子对于有状态的功能组件是有益的,共享状态呢?
[免责声明:我来自前端、react/Angular 世界,我使用 redux/ngrx 进行状态管理。]
\n\nWPF 应用程序中是否有一些管理应用程序状态的标准方法?
\n\n我\xe2\x80\x99见过一些内置命令的使用。另一方面,我\xe2\x80\x99见过Redux.NET库。
\n\n对于其中一个项目,我需要对应用程序状态管理做出决定,并且 i\xe2\x80\x99d 喜欢采用某种标准方法。
\n\n那么,是否有一个单一的标准方法或者可能是最常用的 3 种方法的列表?
\n这是情况——
我的 Flutter 应用仪表板屏幕有两个单独的列表
我有一个名为dashboard_bloc 和dashboard_event 的块,有两个单独的事件来分别获取pageView 数据和列表项数据以及dashboard_state。
这就是我开始的方式。
void initState() {
// TODO: implement initState
super.initState();
_dashboardBloc = DashboardBloc(repository: ProductRepositoryImpl());
_dashboardBloc.add(FetchHomeProductsEvent(token: token, productId: "1"));
_dashboardBloc.add(FetchProductsEvent(token: token));
}
Widget build(BuildContext context) {
return Scaffold(
body: BlocProvider(
create: (context) => _dashboardBloc,
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Container(
child: BlocBuilder<DashboardBloc, DashboardState>(
bloc: _dashboardBloc,
builder: (context, state) {
if (state is DashboardLoadingState) {
return buildLoading();
} else if (state is DashboardErrorState) {
return buildErrorUi(state.message);
} else if (state is DashboardLoadedState) …Run Code Online (Sandbox Code Playgroud) 我有一个嵌套结构,如下所示:
List<Areas>
|-- List<Topics>
| |-- List<Exercises>
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序的工作流程:
API并显示列表AreasArea并转到下一个屏幕API并显示主题列表Topic并转到下一个屏幕API并显示练习列表我开始使用BloC,但我不确定是否应该对每种类型的数据使用一个 Bloc(因此一个 bloc for Areas,另一个 for Topics,另一个 for Exercises)或仅在一个 Bloc 中处理整个结构。
我看到一个问题,其中State包含整个结构,并且每次从 中获取嵌套列表时都需要更新API。也许这会导致内存问题?
另一方面,每种数据类型都有一个 Bloc 将使它们之间的通信变得复杂。
state management如果更有意义的话,我也愿意改用另一种技术。
任何帮助,将不胜感激。
多谢。
我正在尝试通过这个演示项目学习状态管理和依赖注入。我正在尝试演示在整个地方注入一些方法,就像我的程序中可能需要的那样。我使用 GetX 是因为我喜欢能够在非小部件类中无需上下文即可执行此操作。
\n所以我的问题是下面最后一个类中的最后一个方法 summationReturns() 。尝试采用带有 return 语句的方法并将它们添加在一起。我在两个地方这样称呼它。在浮动按钮中,这工作正常,但在我的文本小部件中,我收到脏状态错误。
\n为什么当其他一切都有效时这不起作用?我认为这将是最后一个问题的必然结果,什么是脏状态?看起来像是两个问题,但我想它们是同一个问题。
\n///\n///\n/// DEMO PROJECT WORKING OUT GETX\n/// WORKOUT DEPENDANCY INJECTION AND STATE MANAGEMENT\n\nimport 'package:flutter/material.dart';\nimport 'package:get/get.dart';\nimport 'package:get/get_state_manager/get_state_manager.dart';\n\nvoid main() {\n runApp(GetMaterialApp(\n home: Home(),\n debugShowCheckedModeBanner: false,\n ));\n}\n\nclass Home extends StatelessWidget {\n // Injection of dependancy\n final Controller controller = Get.put(Controller());\n final Observable observable = Get.put(Observable());\n final SimpleMath simpleMath = Get.put(SimpleMath());\n\n @override\n Widget build(BuildContext context) {\n return Scaffold(\n appBar: AppBar(\n title: Text('GetX Demo'),\n ),\n body: Center(\n child: Column(\n mainAxisAlignment: MainAxisAlignment.center,\n children: <Widget>[\n Text('Get …Run Code Online (Sandbox Code Playgroud) 我使用 Flutter 工作了很长时间,并发布了很多产品。我从来没有真正喜欢过 BLoC,更喜欢使用 Provider 或后来的 Riverpod。
我只是不明白该事件的概念。为什么我们还需要它?我很困惑,因为它的实际受欢迎程度...... BLoC 有 Cubit 子类,似乎使用起来更简单,但每个人都只是不停地说:“Cubit 更简单,但功能不那么强”。但有什么限制呢?
我什至认为肘尺更有用,同时也更简单:
示例:用户点击某些产品的“添加到购物车”按钮。
肘:
cartCubit.addProduct(productId);
Run Code Online (Sandbox Code Playgroud)
集团:
cartBloc.addEvent(UserAddsProductEvent(productId));
Run Code Online (Sandbox Code Playgroud)
在它们里面:
肘:
void addProduct(String productId) async {
//some validation...
if(...){...}
final result = await cartRepo.addProduct(id);
if(result == ...) {
state = someState;
//....
}
Run Code Online (Sandbox Code Playgroud)
集团:
void addEvent(CartEvent event) {
if (event is UserAddsProductEvent) {
_addProduct(event.productId)
} else if (event is....) {
//.....
}
}
void _addProduct(String productId) async {
//some validation...
if(...){...}
final result = …Run Code Online (Sandbox Code Playgroud) 我知道颤振中的状态管理存在某些问题,但它们似乎都不能解决我的用例。
最近我正在构建一个基于电子商务的应用程序,并遇到了这种对状态管理的真正需求。我有2页,
用户可以将产品添加到购物车,然后导航到购物车。在购物车页面中,他们还可以增加或减少商品的数量。
正如您所看到的,最初黄色商品被添加到购物车中,数量为 3,但在购物车页面中,用户按下 (-) 按钮,将数量减少到 1。现在,如果用户按下后退按钮,则状态为黄色产品在产品页面上仍为 3。与粉色产品类似的情况。
因此,我尝试使用正常的 setState 和一些全局数据结构来解决这个问题来跟踪数量。但随着我的应用程序变得越来越大,跨页面维护状态真的很困难。我读过不同的状态管理解决方案,例如 redux、BloC 模式、Provider,...但我不清楚如何在我的用例中使用它们。有没有有经验的人帮我把石头敲碎,帮我消化一下?
任何有关如何解决此问题的示例代码和解释将不胜感激!
希望我的问题是清楚的!
state-management flutter flutter-provider flutter-bloc flutter-state
state-management ×10
flutter ×5
bloc ×3
dart ×2
redux ×2
angular ×1
flutter-bloc ×1
flutter-getx ×1
flux ×1
hierarchical ×1
messaging ×1
nested ×1
ngrx ×1
node-modules ×1
python ×1
react-hooks ×1
reactjs ×1
state ×1
vuex ×1
webserver ×1
wpf ×1