首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

flutter_bloc使用解析---骚年,你还在手搭bloc吗!

flutter_bloc使用将从下图的三个维度说明 [flutter_bloc] 前言 首先,有很多的文章在说flutter bloc模式的应用,但是百分之八九十的文章都是在说,使用StreamController...+StreamBuilder搭建bloc,提升性能的会加上InheritedWidget,这些文章看了很多,真正写使用bloc作者开发的flutter_bloc却少之又少。...没办法,只能去bloc的github上去找使用方式,最后去bloc官网翻文档。 蛋痛,各位叼毛,就不能好好说说flutter_bloc使用吗?非要各种抄bloc模式提出作者的那俩篇文章。...使用框架,不拘泥框架,在观察者模式的思想上,灵活的去使用flutter_bloc提供Api,这样可以大大的缩短我们的开发时间!...flutter_bloc相关Api白嫖地址:flutter_bloc相关Api flutter_bloc GitHub:https://github.com/felangel/bloc Pub:https

5K41

Flutter 状态管理】第一论: 对状态管理的看法与理解

2.通过 flutter_bloc 实现状态管理: 源码位置 我们前面说过,状态管理的目的在于:让状态可以共享及在更新状态时可以同步更新相关组件显示,且将状态变化逻辑和界面构建进行分离。...flutter_bloc 是实现状态管理的工具之一,它的核心是:通过 Bloc 将 Event 操作转化成 State;同时通过 BlocBuilder 监听状态的变化,进行局部组件构建。...flutter_bloc 只是 状态管理 的工具之一,而其他的工具,也不会脱离这个核心。 四、官方案例 - github_search 解读 1....案例介绍:源码位置 为了让大家对 flutter_bloc 在逻辑分层上有更深的认识,这里选取了 flutter_bloc 官方的一个案例进行解读。...对于状态管理,其实都是这样,往往初学者 "趋之若鹜" ,不明白为什么要状态管理,为什么一个很简单的功能,非要弯弯绕绕一大圈来实现。就是看到别用了,使用我也要用,这是不理智的。

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Flutter BLoC 异步通信、BlocBuilder的基本使用、BlocProvider的初探

Flutter项目开发中,一般的项目中,会有网络请求的代码与Widget构建的UI界面写一起,随着业务的不断积累,代码量也越来越大,维护的复杂度也会随着增加。...BloC是一种架构模式也是一种编程思想,在Flutter使用BloC时,首先要引入bloc库 dependencies: flutter_bloc: ^6.0.6 然后将依赖库拉取到本地 flutter...、事件、消费组合在一起,在本文章 第四小节有详细概述,代码如下: ///flutter应用程序中的入口函数 void main() => runApp(BlocMainApp()); ///应用的根布局.../material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'dart:async'; import 'bloc_time.dart...定义的 Bloc 角色,代码如下: import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:intl/intl.dart'; /

3.2K11

您不会错过的2020年7个最重要的Flutter更新

在本文中,我将回顾Flutter生态系统中最重要的变化以及相关变化。 Navigator 2.0 今年最重要的新功能可能是Navigator 2.0。...现在,使用新的声明性API可以轻松处理所有这些情况。对堆栈的访问允许在任意位置添加任意数量的页面,以解决前两个问题。...第二个优点是可以更好地与平台路由集成,这在Flutter for Web中尤其有用。在Flutter for Web应用程序中,用户可以使用导航栏随意更改路线。...由于扩展方法的存在,rxdart程序包已重构为使用标准Dart流。自定义可观察类型已替换为具有使用扩展方法添加的其他功能的流。...许多软件包(其中最著名的可能是provider和flutter_bloc)在BuildContext上引入了扩展方法,以更简洁地访问注入的依赖项。

1.5K10

初学者的 Flutter bloc

Flutter Bloc 很容易使用,因为我们和我们团队可以很快明白相关的概念,不管你是什么水平,该库有非常好的文档和很多的案例,它在 Flutter 社区中是广泛使用的那个,所以我们如果有任何问题,我们都可以在网络上通过简单的搜索找到对应的解决方案...这个挂件有 listener 和 builder 函数,所以我们可以一起使用。 BlocSelector 这个挂件允许开发者基于当前 bloc 状态选择一个新的值指定更新。...// home_page_games.dart import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart...// categories_widget.dart import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart...// category_item.dart import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart

9610

flutter系列之:在flutter使用导航Navigator

简介 一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个最为优秀的前端框架,Navigator肯定是必不可少的,那么在flutter中如何使用...一起来看看吧。 flutter中的Navigator Navigatorflutter中用来导航的关键组件。...我们先来看下Navigator的定义: class Navigator extends StatefulWidget Navigator首先是一个StatefulWidget,为什么是一个有状态的widget...Navigator使用 在这个例子中我们会使用Navigator的两个最基本的方法push和pop来进行路由的切换。 先来看下push方法的定义: static Future<T?...为什么会有context呢?这是因为Navigator是和context相关联的,不同的context可以有不同的Navigator。 Route就是要导入的路由。

64020

flutter系列之:在flutter使用导航Navigator

简介 一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个最为优秀的前端框架,Navigator肯定是必不可少的,那么在flutter中如何使用...一起来看看吧。 flutter中的Navigator Navigatorflutter中用来导航的关键组件。...我们先来看下Navigator的定义: class Navigator extends StatefulWidget Navigator首先是一个StatefulWidget,为什么是一个有状态的widget...Navigator使用 在这个例子中我们会使用Navigator的两个最基本的方法push和pop来进行路由的切换。 先来看下push方法的定义: static Future<T?...为什么会有context呢?这是因为Navigator是和context相关联的,不同的context可以有不同的Navigator。 Route就是要导入的路由。

72220

两分钟带你掌握Flutter的路由与导航

在这篇文章中,将带着大家一起认识什么是Flutter的路由与导航,如何完成不同页面跳转?,如何获取路由跳转的返回记过?,以及如何跳转到其他APP?...Flutter 也有类似的实现,使用Navigator 和 Routes。一个路由是 App 中“屏幕”或“页面”的抽象,而一个 Navigator 是管理多个路由的 widget 。...通过把路由的名字 push 给一个 Navigator 来跳转: Navigator.of(context).pushNamed('/b'); 您还可以使用Navigator的push方法,该方法将给定...'); 之后,在 location 路由中,一旦用户选择了地点,携带结果一起 pop() 出栈: Navigator.of(context).pop({"lat":43.821757,"long":-79.226392...为了在 Flutter 中实现这个功能,你可以创建一个原生平台的整合层,或者使用现有的 plugin,例如 url_launcher。

2.1K20

Flutter 1.17 中的导航解密和性能提升

Flutter 1.17 对比上一个稳定版本,更多是带来了性能上的提升,其中一个关键的优化点就是 Navigator 的内部逻辑,本篇将带你解密 Navigator 从 1.12 到 1.17 的变化,...虽然之前介绍过 build 方法本身很轻,但是在“不需要”的时候“执行”明显更符合我们的预期,而这个优化的 PR 主要体现在 stack.dart 和 overlay.dart 两个文件上。...在 Navigator 中其实也是使用了 Overlay 实现页面管理,每个打开的 Route 默认情况下是向 Overlay 插入了两个 OverlayEntry。...这就和 Route 有关,比如默认 Navigator 打开新的页面需要使用 MaterialPageRoute ,而生成 OverlayEntry 就是在它的基类之一的 ModalRoute 完成。...而 1.17 开始,Flutter 在 iOS 上对于支持 Metal 的设备将使用 Metal 进行渲染,所以官方提供的数据上看,这样可以提高 50% 的性能。

93220

Flutter路由管理和页面参数的传递(源码分析)

前言 上一篇 Flutter路由管理和页面参数的传递(获取&返回) 文章中我们讲述了这么用代码实现 Flutter 中页面参数的传递,这一篇我们用源码分析一下 Navigator 为什么可以进行页面参数传递...我们从 Flutter 应用程序的入口开始一步一步跟进代码的执行: void main() => runApp(MyApp()); class MyApp extends StatelessWidget...Navigator.png 这张图是程序运行时候使用(DevTools)进行的页面元素分析,也证明了 Navigator 是在页面的 Widget 元素路径上的。...context) => widget.home : widget.routes[name]; //如果pageContentBuilder不为空,那么和RouteSettings一起执行...这个解释了在 Flutter路由管理和页面参数的传递(获取&返回) 这篇文章末尾说的 onGenerateRoute 方式进行的参数传递,必须不能进行 routers 的注册。

1.2K10

flutter路由

widget; NavigatorKey是一个管理路由的Key; 看完本文你将学会路由的使用、管理好一个路由、路由传参、路由带参返回、路由记录、返回到指定路由、路由动画, 然后使用pop操作来进行回退到某个路由... (package:flutter/src/widgets/navigator.dart:1475:9) I/flutter (21935): #1 Navigator.of...(package:flutter/src/widgets/navigator.dart:1482:6) I/flutter (21935): #2 Navigator.push (package...MaterialApp的,这个上下文包含Navigator导航器操作, 所以我们应该把home的那部分抽出来放另一个类; 路由传值并返回值 路由传参在上面那个例子已经有了,num就是我们的参数,然后显示在标题上就是使用了.../material.dart';包; CupertinoPageRoute:存在于:import 'package:flutter/cupertino.dart';包; 使用: 直接把我们用来push的

1.7K20

Flutter 专题】55 日常小问题小结 (二)

和尚作为初学者,基础薄弱,继续整理日常小问题; 问题一:依赖版本冲突 Flutter 的更新很频繁,而我们本地的环境可能会是一个较低的稳定版本,而我们使用的插件可能版本较高,在集成时可能会遇到如下冲突...尝试一: 在 pub.dev 中找到问题的插件,根据更新列表逐个低版本尝试,注意需要替换成固定版本(无 ^),直到正常使用版本,虽然靠谱但是可能尝试次数很多; ?...将出问题的插件版本更换为 any,如:json_annotation: any; Package get 更新插件,自动匹配; 在 pubspec.lock 文件中找到问题插件,系统会自动匹配安全版本(和尚测试可能与逐个排查的版本不一致...); 在 pubspec.yaml 中替换这个安全版本即可,注意:any 只是用来辅助查找安全版本,在实际项目中建议用,可能会出现适配问题; ?...(context), onGirlChooseEvent: () => Navigator.pop(context)); }); }); } ?

1.2K31

Flutter Web:刷新与后退问题

前言 使用flutter开发web页面,在pc端使用就会面临刷新的问题。尤其是刷新时,本地变量清空导致页面问题,所以就需要考虑全局缓存的问题。...对于这个问题很多人也在github的flutter项目中反馈 https://github.com/flutter/flutter/issues/59277 正式的解决方案是使用Navigator2.0...,关于Navigator2.0可以参见FlutterNavigator2.0介绍及使用 这里面我提到,Navigator2.0在浏览器回退按钮的处理上又与Navigator1.0不同,点击回退按钮时Navigator2.0...那么Navigator2.0为什么Navigator1.0不同?...目前来看google的对flutter web的意图,还是开发移动web并在App中通过webkit这种内核使用,并没有想开发者使用flutter web来开发真正的web应用,或者后续会完善这部分。

2.4K30

Flutter学习笔记:BottomNavigationBar实现多个Navigation

最近我研究了一下Flutter,但是在使用Navigator的时候遇到了一个很头痛的问题,就是当我们去来回切换导航按钮时,Flutter会重新build,从而导致控件重新Build,从而会失去浏览历史。...原文点这里 正文 今天我们将看看Flutter的Navigation。 但不仅仅是任何无聊的Navigation。? ,女士们,先生们,来让我们把Navigation变得有趣。...一切都关于Navigator 所有Flutter应用程序都被定义为MaterialApp。...Navigator.of(context)在窗口控件树中找到Navigator,并使用它来推送新route。 你可能好奇 Navigator是从哪来的。...这将Offstage控件与子TabNavigator一起使用。 如果正在呈现的选项卡与当前选项卡匹配,则offstage属性为true。

4.2K20

【技术创作101训练营】Flutter Routes 路由应用与封装小结

,重点是介绍 Flutter Navigator 的应用与封装; 个人简介:  (Page 3)首先和尚做一个简单的自我介绍;本人 ID 为 阿策小和尚,为什么叫 和尚 呢?...腾讯云社区】文章链接,有兴趣的朋友可以了解一下,有机会的话希望可以多多交流; Flutter Navigator 路由简介: (Page 4)和尚首先介绍一下 Navigator 和 Route...中的 Intent;Navigator 是一个内部类,在 WidgetsApp / MaterialApp / CupertinoApp 中是默认插入的,可以直接使用;       (Page 5)Page...分析源码可以得到,其路由是通过 Stack 方式来存储的;主要通过 Push 入栈和 Pop 出栈维护管理的; Flutter Navigator 基本应用(六大金刚): (Page 6)Navigator...; 总结 & 建议:   (Page 26)介绍完 Flutter Navigator 的应用与封装之后;和尚就自身的体验给大家一点小小的建议: 不要为了封装而封装,在合适的位置调用合适的方法;不要盲从

1.3K102
领券