Flutter响应式编程 - RxDart
import 'package:flutter/material.dart';
import 'package:rxdart/rxdart.dart';
import 'dart:async'; class RxDartDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('RxDartDemo'),
elevation: 0.0,
),
body: RxDartDemoHome(),
);
}
} class RxDartDemoHome extends StatefulWidget {
@override
_RxDartDemoHomeState createState() => _RxDartDemoHomeState();
} class _RxDartDemoHomeState extends State<RxDartDemoHome> {
PublishSubject<String> _textFieldSubject; @override
void initState() {
super.initState(); _textFieldSubject = PublishSubject<String>(); _textFieldSubject
// .map((item) => 'item: $item')
// .where((item) => item.length > 9)
.debounce(Duration(milliseconds: 500))
.listen((data) => print(data)); // Observable<String> _observable =
// // Observable(Stream.fromIterable(['hello', '您好']));
// // Observable.fromFuture(Future.value('hello ~'));
// // Observable.fromIterable(['hello', '您好']);
// // Observable.just('hello ~');
// Observable.periodic(Duration(seconds: 3), (x) => x.toString()); // _observable.listen(print); // PublishSubject<String> _subject = PublishSubject<String>();
// BehaviorSubject<String> _subject = BehaviorSubject<String>();
// ReplaySubject<String> _subject = ReplaySubject<String>(maxSize: 2); // _subject.add('hello');
// _subject.add('hola');
// _subject.add('hi');
// _subject.listen((data) => print('listen 1: $data'));
// _subject.listen((data) => print('listen 2: ${data.toUpperCase()}')); // _subject.close();
} @override
void dispose() {
super.dispose();
_textFieldSubject.close();
} @override
Widget build(BuildContext context) {
return Theme(
data: Theme.of(context).copyWith(
primaryColor: Colors.black,
),
child: TextField(
onChanged: (value) {
_textFieldSubject.add('input: $value');
},
onSubmitted: (value) {
_textFieldSubject.add('submit: $value');
},
decoration: InputDecoration(
labelText: 'Title',
filled: true,
),
),
);
}
}
Flutter响应式编程 - RxDart的更多相关文章
- Flutter响应式编程 - Stream
1.前言 在Dart库中,有两种实现异步编程的方式(Future和Stream),使用它们只需要在代码中引入dart:async即可. 本文主要介绍Stream的相关概念及利用其异步特性来实现简单的响 ...
- iOS开发--Swift RAC响应式编程初探
时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...
- IOS响应式编程框架ReactiveCocoa(RAC)使用示例
ReactiveCocoa是响应式编程(FRP)在iOS中的一个实现框架,它的开源地址为:https://github.com/ReactiveCocoa/ReactiveCocoa# :在网上看了几 ...
- 函数响应式编程(FRP)—基础概念篇
原文出处:http://ios.jobbole.com/86815/. 一函数响应式编程 说到函数响应式编程,就不得不提到函数式编程,他们俩有什么关系呢?今天我们就详细的解析一下他们的关系. 现在下面 ...
- Unity基于响应式编程(Reactive programming)入门
系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...
- iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好
转载: iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好 内容来自stack overflow的一个回答:ReactiveCocoa vs RxSwift – pros an ...
- [译] Swift 的响应式编程
原文 https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-3/Swift的响应式编程.md 原文链接 : Reactiv ...
- iOS开发--Swift RAC响应式编程
时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...
- 深入浅出-iOS函数式编程的实现 && 响应式编程概念
简介 本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助. 配图 ...
随机推荐
- mysql in条件查询到底会不会用到索引
MySQL 的 in 查询在 5.5 以上的版本中存储引擎都是 innodb 的,正常情况下会走索引的!至于 MyISAM 没试过! 如果是 5.5 之前的版本确实不会走索引的,在 5.5 之后的版本 ...
- GT源码阅读
昨天读了一点GT的代码,做个笔记. 参考阅读顺序:https://gt.qq.com/docs/a/UseGtWithBroadcast.txt 在上面的doc上面找到了对应的板块的代码. 1.采集本 ...
- 十七.protobuf在rpc中的使用
关于protobuf在rpc中的使用,设计到gRPC,相关内容待续....
- spring框架面試題目
25个经典的Spring面试问答 这是在网上下载的面试题,忘记了出处,如带来不便联系本人立马删除,在这里提供给将要面试的朋友,与大家分享,希望能给您带来帮助! 问题清单: 1. 什么是Spring框架 ...
- 织梦cms 后台查看会员性别为空
织梦cms会员注册选择性别为保密时,在后台会员中心查看性别为空的修改方法 第一步:找到dede/templets/member_view.htm,在引号中添加保密就ok 再次修改后的结果
- Calling Extraterrestrial Intelligence Again POJ 1411
题目链接:http://poj.org/problem?id=1411 题目大意:找两个素数p,q满足a/b<=p/q<=1 且p*q<=m,求p*q最大的一组素数对. 第一次想的是 ...
- [Angular] How to show global loading spinner for application between page navigation
app.component.ts: import { Component, OnInit } from "@angular/core"; import { select, Stor ...
- 判断指定对象是否进入浏览器可视窗口,true 进入,false 没进入
//判断指定对象是否进入浏览器可视窗口,true 进入,false 没进入 var $win = $(window);//jQuery 的 window 对象 即:文档对象 function isVi ...
- CSS字体图标
一.什么是字体图标: 1. 字体图标可以和图片一样改变透明度,旋转度,等等 2.本质是文字,可以改变大小颜色等等比较适用于移动端 总结;图标字体具有矢量效果,放大缩小不失真,而且可以使用CSS任意更改 ...
- nohup 后台执行
nohup 默认是当前用户执行的,当当前用户退出会导致执行进程异常. 所以正确的 nohup 是指定 /bin/bash 进行执行. nohup /bin/bash/ /opt/script/s.s ...