pub fn use_cookie<'hook, T>(
key: String,
) -> impl 'hook + Hook<Output = UseCookieHandle<T>>where
T: for<'de> Deserialize<'de> + 'static + 'hook,Expand description
A side-effect hook that manages a single cookie.
§Example
use yew_hooks::prelude::*;
#[function_component(Cookie)]
fn cookie() -> Html {
let cookie = use_cookie::<String>("foo".to_string());
let onclick = {
let cookie = cookie.clone();
Callback::from(move |_| cookie.set("bar".to_string()))
};
let ondelete = {
let cookie = cookie.clone();
Callback::from(move |_| cookie.delete())
};
html! {
<div>
<button onclick={onclick}>{ "Set to bar" }</button>
<button onclick={ondelete}>{ "Delete" }</button>
<p>
<b>{ "Current value: " }</b>
{
if let Some(value) = &*cookie {
html! { value }
} else {
html! {}
}
}
</p>
</div>
}
}§Note
When used in function components and hooks, this hook is equivalent to:
/// A side-effect hook that manages a single cookie.
///
/// # Example
///
/// ```rust
/// # use yew::prelude::*;
/// #
/// use yew_hooks::prelude::*;
///
/// #[function_component(Cookie)]
/// fn cookie() -> Html {
/// let cookie = use_cookie::<String>("foo".to_string());
///
/// let onclick = {
/// let cookie = cookie.clone();
/// Callback::from(move |_| cookie.set("bar".to_string()))
/// };
/// let ondelete = {
/// let cookie = cookie.clone();
/// Callback::from(move |_| cookie.delete())
/// };
///
/// html! {
/// <div>
/// <button onclick={onclick}>{ "Set to bar" }</button>
/// <button onclick={ondelete}>{ "Delete" }</button>
/// <p>
/// <b>{ "Current value: " }</b>
/// {
/// if let Some(value) = &*cookie {
/// html! { value }
/// } else {
/// html! {}
/// }
/// }
/// </p>
/// </div>
/// }
/// }
/// ```
pub fn use_cookie<T>(key: String) -> UseCookieHandle<T>
where
T: for<'de> Deserialize<'de> + 'static,
{
/* implementation omitted */
}