Expand description
§Yew Hooks
Hooks for Yew, inspired by streamich/react-use and alibaba/hooks.
§Examples
use yew::prelude::*;
use yew_hooks::use_counter;
#[function_component(Counter)]
fn counter() -> Html {
let counter = use_counter(0);
let onincrease = {
let counter = counter.clone();
Callback::from(move |_| counter.increase())
};
let ondecrease = {
let counter = counter.clone();
Callback::from(move |_| counter.decrease())
};
let onincreaseby = {
let counter = counter.clone();
Callback::from(move |_| counter.increase_by(10))
};
let ondecreaseby = {
let counter = counter.clone();
Callback::from(move |_| counter.decrease_by(10))
};
let onset = {
let counter = counter.clone();
Callback::from(move |_| counter.set(100))
};
let onreset = {
let counter = counter.clone();
Callback::from(move |_| counter.reset())
};
html! {
<div>
<button onclick={onincrease}>{ "Increase" }</button>
<button onclick={ondecrease}>{ "Decrease" }</button>
<button onclick={onincreaseby}>{ "Increase by 10" }</button>
<button onclick={ondecreaseby}>{ "Decrease by 10" }</button>
<button onclick={onset}>{ "Set to 100" }</button>
<button onclick={onreset}>{ "Reset" }</button>
<p>
<b>{ "Current value: " }</b>
{ *counter }
</p>
</div>
}
}
§Demo
Modules§
Structs§
- Close
Event - The
CloseEvent
class. - Location
State - State for brower’s location.
- UseAsync
Handle - State handle for the
use_async
hook. - UseAsync
Options - Options for
use_async_with_options
. - UseAsync
State - State for an async future.
- UseClipboard
Handle - State handle for the
use_clipboard
hook. - UseCounter
Handle - State handle for the
use_counter
hook. - UseDebounce
Handle - State handle for the
use_debounce
hook. - UseDebounce
State Handle - State handle for the
use_debounce_state
hook. - UseDefault
Handle - State handle for the
use_default
hook. - UseDrag
Handle - State handle for the
use_drag
hook. - UseDrag
Options - Options for drag.
- UseDrop
Handle - State handle for the
use_drop
hook. - UseDrop
Options - Options for drop.
- UseGeolocation
Options - The
PositionOptions
dictionary. - UseGeolocation
State - UseHash
Handle - State handle for the
use_hash
hook. - UseLatest
Handle - State handle for the
use_latest
hook. - UseList
Handle - State handle for the
use_list
hook. - UseLocal
Storage Handle - State handle for the
use_local_storage
hook. - UseMap
Handle - State handle for the
use_map
hook. - UseMeasure
State - UseMedia
Handle - State handle for the
use_media
hook. - UseMedia
Options - Options for media
- UseMut
Latest Handle - State handle for the
use_mut_latest
hook. - UsePrevious
Handle - State handle for the
use_previous
hook. - UseQueue
Handle - State handle for the
use_queue
hook. - UseRaf
State Handle - State handle for the
use_raf_state
hook. - UseSession
Storage Handle - State handle for the
use_session_storage
hook. - UseSet
Handle - State handle for the
use_set
hook. - UseState
PtrEq Handle - State handle for the
use_state_ptr_eq
hook. - UseSwipe
Handle - State handle for the
use_swipe
hook. - UseSwipe
Options - Options for swipe.
- UseThrottle
Handle - State handle for the
use_throttle
hook. - UseThrottle
State Handle - State handle for the
use_throttle_state
hook. - UseTimeout
Handle - State handle for the
use_timeout
hook. - UseToggle
Handle - State handle for the
use_toggle
hook. - UseWeb
Socket Handle - State handle for the
use_websocket
hook. - UseWeb
Socket Options - Options for
WebSocket
.
Enums§
- UseSwipe
Direction - Swipe direction.
- UseWeb
Socket Ready State - The current state of the
WebSocket
connection.
Functions§
- use_
async - This hook returns state and a
run
callback for an async future. - use_
async_ with_ options - This hook returns state and a
run
callback for an async future with options. Seeuse_async
too. - use_
before_ unload - A side-effect hook that shows browser alert when user try to reload or close the page.
- use_
bool_ toggle - This hook is a simplified
use_toggle
to manage boolean toggle state in a function component. - use_
click_ away - A hook that triggers a callback when user clicks outside the target element.
- use_
clipboard - This hook is used to read from or write to clipboard for text or bytes.
e.g. copy plain text or copy
image/png
file to clipboard. - use_
counter - This hook is used to manage counter state in a function component.
- use_
debounce - A hook that delays invoking a function until after wait milliseconds have elapsed since the last time the debounced function was invoked.
- use_
debounce_ effect - A hook that delays calling effect callback until after wait milliseconds have elapsed since the last time effect callback was called.
- use_
debounce_ effect_ with_ deps - This hook is similar to
use_debounce_effect
but it accepts dependencies. - use_
debounce_ state - A hook that delays updating state until after wait milliseconds have elapsed since the last time state was updated.
- use_
default - A state hook that returns the default value when state is None.
- use_
drag - This hook tracks file, link and copy-paste drags.
- use_
drag_ with_ options - This hook tracks file, link and copy-paste drags.
use_drag
hook with options. - use_
drop - This hook tracks file, link and copy-paste drops.
- use_
drop_ with_ options - This hook tracks file, link and copy-paste drops.
use_drop
hook with options. - use_
effect_ once - A lifecycle hook that runs an effect only once.
- use_
effect_ update - This hook ignores the first invocation (e.g. on mount).
The signature is exactly the same as the
use_effect
hook. - use_
effect_ update_ with_ deps - This hook is similar to
use_effect_update
but it accepts dependencies. The signature is exactly the same as theuse_effect_with
hook. - use_
event - A hook that subscribes a callback to events.
- use_
event_ with_ window - A hook that subscribes a callback to events only for window.
If you want to specify an event target, use
use_event
. - use_
favicon - A side-effect hook that sets favicon of the page.
- use_
geolocation - A sensor hook that tracks user’s geographic location.
- use_
geolocation_ with_ options - A sensor hook that tracks user’s geographic location.
See
use_geolocation
- use_
hash - A sensor hook that tracks brower’s location hash value.
- use_
hovered - A sensor hook that tracks whether HTML element is being hovered.
- use_
infinite_ scroll - A sensor hook that tracks infinite scrolling of the element.
- use_
interval - A hook that schedules an interval to invoke
callback
everymillis
milliseconds. The interval will be cancelled ifmillis
is set to 0. - use_
is_ first_ mount - A hook returns true if component is just mounted (on first render) and false otherwise.
- use_
is_ mounted - A hook returns true if component is mounted and false otherwise.
- use_
latest - This hook returns the latest immutable ref to state or props.
- use_
list - A hook that tracks a list and provides methods to modify it.
- use_
local_ storage - A side-effect hook that manages a single localStorage key.
- use_
location - A sensor hook that tracks brower’s location value.
- use_
logger - This hook logs in console as component goes through life-cycles.
- use_
logger_ eq - This hook logs in console as component goes through life-cycles.
Like
use_logger
but only logs whenprev_state != next_state
. This requires the props to implementPartialEq
. - use_map
- A hook that tracks a hash map and provides methods to modify it.
- use_
measure - A sensor hook that tracks an HTML element’s dimensions using the
ResizeObserver
API. - use_
media - This hook plays video or audio and exposes its controls.
- use_
media_ with_ options - This hook plays video or audio and exposes its controls with options.
see
use_media
- use_
mount - A lifecycle hook that calls a function after the component is mounted.
- use_
mut_ latest - This hook returns the latest mutable ref to state or props.
- use_
previous - This hook returns the previous immutable ref to state or props.
- use_
queue - A hook that tracks a queue and provides methods to modify it.
- use_raf
- An animation hook that forces component to re-render on each
requestAnimationFrame
, returns percentage of time elapsed.millis
- milliseconds for how long to keep re-rendering component.delay
— delay in milliseconds after which to start re-rendering component. - use_
raf_ state - A state hook that only updates state in the callback of
requestAnimationFrame
. - use_
renders_ count - A hook that counts component renders.
- use_
scroll - A sensor hook that tracks an HTML element’s scroll position.
- use_
scrolling - A sensor hook that tracks whether HTML element is scrolling.
- use_
search_ param - A sensor hook that tracks brower’s location search param value.
- use_
session_ storage - A side-effect hook that manages a single sessionStorage key.
- use_set
- A hook that tracks a hash set and provides methods to modify it.
- use_
size - A sensor hook that tracks an HTML element’s dimensions using the
ResizeObserver
API. - use_
state_ ptr_ eq - Similar to
use_state_eq
, but check if the twoRc
s of values point to the same allocation, instead of PartialEq of the values. - use_
swipe - A sensor hook that detects swipe based on TouchEvent.
- use_
swipe_ with_ options - A sensor hook that detects swipe based on TouchEvent with options.
If you want to detect for window, pass
NodeRef::default()
to paramnode
. - use_
swipe_ with_ window - A sensor hook that detects swipe based on TouchEvent for window.
See
use_swipe
. - use_
throttle - A hook that throttles invoking a function, the function is only executed once every
millis
. - use_
throttle_ effect - A hook that throttles calling effect callback, it is only called once every
millis
. - use_
throttle_ effect_ with_ deps - This hook is similar to
use_throttle_effect
but it accepts dependencies. - use_
throttle_ state - A hook that throttles updating state, the state is only updated once every
millis
. - use_
timeout - A hook that schedules a timeout to invoke
callback
inmillis
milliseconds from now. The timeout will be cancelled ifmillis
is set to 0 orcancel()
is called. - use_
title - A side-effect hook that sets title of the page and restore previous title when unmount.
- use_
toggle - This hook is used to manage toggle state in a function component.
- use_
unmount - A lifecycle hook that calls a function when the component will unmount.
- use_
update - A hook returns a function that forces component to re-render when called.
- use_
visible - Check if an element is visible. Internally, it uses an
IntersectionObserver
to receive notifications from the browser whenever the visibility state of the node changes. - use_
websocket - This hook communicates with
WebSocket
. - use_
websocket_ with_ options - This hook communicates with
WebSocket
with options. - use_
window_ scroll - A sensor hook that tracks Window scroll position.
- use_
window_ size - A sensor hook that tracks dimensions of the browser window.