RiverPod以及Hook

news2024/11/16 7:28:12

RiverPod
导入和基础等查看官方文档

import 'package:hooks_riverpod/hooks_riverpod.dart';

final normalProvider = Provider<String>((ref) {
  return "this is normalProvider";
});
final stateProvider = StateProvider.autoDispose((ref) {
  return "this is stateProvider";
});

void test(WidgetRef ref) {
  //https://www.wodecun.com/blog/8264.html

  //autoDispose  family(传递参数)

  //八大Provider  实际基本使用注解形式
  //1.Provider 普通provider
  var normal = ref.read(normalProvider);
  //2.stateProvider
  var state = ref.read(stateProvider.notifier).state;
  print("back=$state");
  state = "this is stateProvider change";
  print("back=$state");
  //3.StateNotifierProvider
  //4.FutureProvider
  //5.StreamProvider
  //6.ChangeNotifierProvider
  //7.NotifierProvider
  //8.AsyncNotifierProvider

  String a;
}

实际项目中更多使用注解形式创建provider 在这里插入图片描述

插件

vscode 可以使用Flutter Snippets Flutter Riverpod Snippets 等辅助快捷生层代码

flutter_hooks

一般Riverpod都会配合flutter_hooks使用进行项目的一个状态管理

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

class TestHookExample extends HookConsumerWidget {
  const TestHookExample({super.key});
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    useEffect(() {
      //执行初始化代码  类似initState效果

      return () {
        //类似dispose 效果
      };
    }, []); //参数为空list 表示只执行一次  有参数表示参数变动时也会执行

    final txt = useState('');
    final txtCtroll = useTextEditingController(text: "default value");
    //还有其他各种use hooks 参见官方文档

    return Container();
  }
}

github地址

参考文档

https://www.wodecun.com/blog/8264.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2121581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker:对已有的容器,对当前容器映射的端口实时增删改查

首先我的docker已经起了一个容器&#xff0c;我突然想把他的80->80映射的端口改成80->8080 但是我不想去新启动容器&#xff0c;想在现有容器基础上去修改&#xff0c;或者我想删除某个端口映射&#xff08;只是大概思路&#xff09; 如何寻找容器配置文件位置 首先我这…

SpringBoot大学生租房平台:技术实现与市场分析

第2章 开发环境与技术 大学生租房平台的编码实现需要搭建一定的环境和使用相应的技术&#xff0c;接下来的内容就是对大学生租房平台用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的&#xff0c;是经常变动的&#xff0c;没有办…

使用LDAP登录GitLab

使用LDAP登录GitLab gitlab.rb 配置如下 gitlab_rails[ldap_enabled] true #gitlab_rails[prevent_ldap_sign_in] false###! **remember to close this block with EOS below** gitlab_rails[ldap_servers] YAML.load <<-EOSmain:label: LDAPhost: 172.16.10.180port:…

FAT32文件系统详细分析 (格式化SD nandSD卡)

FAT32 文件系统详细分析 (格式化 SD nand/SD 卡) 目录 FAT32 文件系统详细分析 (格式化 SD nand/SD 卡)1. 前言2.格式化 SD nand/SD 卡3.FAT32 文件系统分析3.1 保留区分析3.1.1 BPB(BIOS Parameter Block) 及 BS 区分析3.1.2 FSInfo 结构扇区分析3.1.3 引导扇区剩余扇区3.1.4 …

程序员如何写笔记并整理资料?

整理笔记 word。没错&#xff0c;我也看了网上一大堆软件&#xff0c;还有git管理等等。个人认为如果笔记只是记录个人的经验积累&#xff0c;一个word就够了&#xff0c;那些notepad&#xff0c;laTex个人觉得不够简练。word。 1.word可以插入任何文件附件(目前最大的word 20…

python简单处理nmap的扫描结果

0x00 前言 当我们使用nmap扫描大量目标的时候&#xff0c;会使用nmap 扫描大量的IP后&#xff0c;会使用nmap对扫描结果进行输出保存&#xff0c;例如-oX 保存为xml文件&#xff0c;但是我们经常使用的是excel表格进行分发结果到各个负责人。 0x01设计 我们可能使用不同时间的…

稳健外汇盈利:掌握关键风险管理技巧

在复杂多变的市场中&#xff0c;机遇与风险是并存的&#xff0c;往往一念之差便能决定财富的沉浮。因此&#xff0c;每位交易员都需要对市场心存敬畏&#xff0c;深刻理解并实践风险控制的重要性&#xff0c;以免被市场的巨浪吞噬。正如投资大师巴菲特所言&#xff1a;“投资法…

Docker常用操作(基础篇)

Docker常用操作一览图 #查看镜像 docker images #拉取nginx镜像 docker pull nginx #拉取mysql镜像 docker pull mysql docker run -d --name nginx1 -p 80:80 nginx #docker run -d&#xff1a;创建并运行一个容器&#xff0c;-d是让容器以后台进程运行 #--name nginx1&#…

【Python基础】Python中的pip命令安装与使用

前言 对于一些新手来说&#xff0c;如何安装和使用pip命令可能会有些困惑。本文将详细介绍pip命令的安装和使用方法&#xff0c;帮助读者轻松上手pip&#xff0c;让你在Python编程旅程中更加自如。 一、pip简介 pip是Python的包管理工具&#xff0c;全称是“pip installs pac…

TikTok和Instagram各自不同的广告形式,该选定哪个平台?

近年来&#xff0c;TikTok凭借其短视频和创新功能吸引了大量年轻用户&#xff0c;并在广告方面推出了挑战赛、创意滤镜和名人合作等多种形式&#xff0c;自2019年起迅速崛起&#xff0c;成为Instagram的有力竞争者&#xff0c;连续三年在下载量上名列前茅。而Instagram则拥有超…

时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测

时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测 目录 时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测&#xff…

数据集 3DPW Dataset 介绍-户外三维人体建模 >> DataBall

3DPW-开源户外三维人体建模数据集-姿态估计-人体关键点-人体mesh建模 数据集特性&#xff1a; 1&#xff09;rgb图 2&#xff09;2d关键点 3&#xff09;3d关键点 4&#xff09;3d网格点mesh 5&#xff09;相机内参/外参 inproceedings{vonMarcard2018, title {Recoveri…

实验十 多线程的处理

实验目的及要求 目的&#xff1a;理解线程的概念&#xff0c;掌握Java的多线程机制&#xff0c;会用多线程编写Java程序。 要求&#xff1a; 理解线程的概念会用Thread类创建线程会使用Runnable接口创建多线程对两种实现多线程方式的方式进行对比掌握线程的同步 二、实验环境…

数据挖掘顶会ICDM 2024论文分享┆MetaSTC:一种基于聚类和元学习的时空预测框架

第24届IEEE国际数据挖掘会议&#xff08;IEEE International Conference on Data Mining&#xff0c;ICDM&#xff09;将于2024年12月9日至12日在阿拉伯联合酋长国首都阿布扎比隆重举行。ICDM是世界数据挖掘研究顶级会议&#xff0c;创办于2001年&#xff0c;每年举办一届,会议…

会计凭证IDOC有关增强

记录一下&#xff1a; 项目上某需求是会计凭证动态数据同步档案系统&#xff0c;某开发用的BTE的1150事件&#xff0c;上线后发现漏掉了一部分凭证。事实证明BTE并不适用于所有的会计凭证场景。在未经过充分测试情况下&#xff0c;慎用BTE。 DEBUG找了两个比较靠谱的增强点&…

行政组织理论-第十三章:行政组织变革

章节章节汇总第一章&#xff1a;绪论第二章&#xff1a;行政组织的演变第三章&#xff1a;科层制行政组织理论第四章&#xff1a;人本主义组织理论第五章&#xff1a;网络型组织理论第六章&#xff1a;行政组织目标第七章&#xff1a;行政组织结构第八章&#xff1a;行政组织体…

上海宝钢阿赛洛屋顶光伏发电项目案例分享

摘要&#xff1a;随着“双碳”目标的提出&#xff0c;可再生能源的开发利用已成为必然趋势。新能源发电作为能源利用的重要形式&#xff0c;已经吸引了越来越多的关注。相较于大规模、高电压、长距离传输的集中式发电模式&#xff0c;分布式光伏因其容量小、电压低、便于就地消…

使用SVM在数字验证码识别中的应用研究课程报告

第1章 概要设计 1.1 设计目的 支持向量机作为一类强大的监督学习模型&#xff0c;以其出色的泛化能力&#xff0c;在手写数字识别、面部检测、图像分类等多个领域展现出了其优越性。其在处理小样本、非线性及高维模式识别任务中表现尤为突出。SVM通过构造最优超平面&#xff…

WMS仓储管理系统中条码打印管理

1. 条码打印管理概述 1.1WMS系统中条码的作用 在WMS系统中&#xff0c;条码作为一种自动识别技术&#xff0c;对于提高仓库管理效率和准确性起着至关重要的作用。 - 物料追踪&#xff1a;通过为每个物料分配唯一的条码&#xff0c;可以实现对物料从入库到出库的全程追踪。 …

第三天旅游线路预览——从禾木景区入口到景区换乘中心

第三天&#xff1a;从贾登峪到禾木风景区&#xff0c;晚上住宿贾登峪&#xff1b; 从禾木景区入口到景区换乘中心&#xff1a; 进入禾木景区后乘坐景区摆渡车至景区换乘中心&#xff0c;路程约60公里&#xff0c;耗时100分钟&#xff1b; 将上面的的行程安排进行动态展示&am…