flutter_hooks 0.3.0-dev.3 flutter_hooks: ^0.3.0-dev.3 copied to clipboard
A flutter implementation of React hooks. It adds a new kind of widget with enhanced code reuse.
0.3.0: #
- NEW: Hooks are now visible on
HookElement
throughdebugHooks
in development, for testing purposes. - NEW: If a widget throws on the first build or after a hot-reload, next rebuilds can still add/edit hooks until one
build
finishes entirely. - NEW: new life-cycle availble on
HookState
:didBuild
. This life-cycle is called synchronously right afterbuild
method ofHookWidget
finished. - NEW: new
reassemble
life-cycle onHookState
. It is equivalent toState.ressemble
of statefulwidgets. - NEW:
useStream
anduseFuture
now have an optionalpreserveState
flag. This toggle how these hooks behaves when changing the stream/future: If true (default) they keep the previous value, else they reset to initialState.
0.2.1: #
- NEW:
useValueNotifier
, which creates aValueNotifier
similarly touseState
. But without listening it. This can be useful to have a more granular rebuild when combined touseValueListenable
. - NEW:
useContext
, which exposes theBuildContext
of the currently buildingHookWidget
.
0.2.0: #
- Made all existing hooks as static functions, and removed
HookContext
. The migration is as followed:
Widget build(HookContext context) {
final state = context.useState(0);
}
becomes:
Widget build(BuildContext context) {
final state = useState(0);
}
- Introduced keys for hooks and applied them to hooks where it makes sense.
- Added
useReducer
for complex state. It is similar touseState
but is being managed by aReducer
and can only be changed by dispatching an action. - fixes a bug where hot-reload without using hooks throwed an exception
0.1.0: #
useMemoized
callback doesn't take the previous value anymore (to match React API) UseuseValueChanged
instead.- Introduced
useEffect
anduseStreamController
- fixed a bug where hot-reload while reordering/adding hooks did not work properly
- improved readme
0.0.1: #
Added a few common hooks:
useStream
useFuture
useAnimationController
useSingleTickerProvider
useListenable
useValueListenable
useAnimation
0.0.0: #
- initial release