Struct leptos::AwaitProps
source · pub struct AwaitProps<T, Fut, FF, VF, V>where
Fut: Future<Output = T> + 'static,
FF: Fn() -> Fut + 'static,
V: IntoView,
VF: Fn(&T) -> V + 'static,
T: Serializable + 'static,{
pub future: FF,
pub blocking: bool,
pub local: bool,
pub children: VF,
}
Expand description
Props for the Await
component.
Allows you to inline the data loading for an async
block or
server function directly into your view. This is the equivalent of combining a
create_resource
that only loads once (i.e., with a source signal || ()
) with
a Suspense
with no fallback
.
Adding let:{variable name}
to the props makes the data available in the children
that variable name, when resolved.
async fn fetch_monkeys(monkey: i32) -> i32 {
// do some expensive work
3
}
view! {
<Await
future=|| fetch_monkeys(3)
let:data
>
<p>{*data} " little monkeys, jumping on the bed."</p>
</Await>
}
§Required Props
- future: [
FF
]- A function that returns the
Future
that will the component will.await
before rendering.
- A function that returns the
- children: [
VF
]-
A function that takes a reference to the resolved data from the
future
renders a view.§Syntax
This can be passed in the
view
children of the<Await/>
by using thelet:
syntax to specify the name for the data variable.view! { <Await future=|| fetch_monkeys(3) let:data > <p>{*data} " little monkeys, jumping on the bed."</p> </Await> }
is the same as
view! { <Await future=|| fetch_monkeys(3) children=|data| view! { <p>{*data} " little monkeys, jumping on the bed."</p> } /> }
-
§Optional Props
- blocking:
bool
- If
true
, the component will usecreate_blocking_resource
, preventing the HTML stream from returning anything beforefuture
has resolved.
- If
- local:
bool
- If
true
, the component will usecreate_local_resource
, this will always run on the local system and therefore its result type does not need to beSerializable
.
- If
Fields§
§future: FF
A function that returns the Future
that
will the component will .await
before rendering.
blocking: bool
If true
, the component will use create_blocking_resource
, preventing
the HTML stream from returning anything before future
has resolved.
local: bool
If true
, the component will use create_local_resource
, this will
always run on the local system and therefore its result type does not
need to be Serializable
.
children: VF
A function that takes a reference to the resolved data from the future
renders a view.
§Syntax
This can be passed in the view
children of the <Await/>
by using the
let:
syntax to specify the name for the data variable.
view! {
<Await
future=|| fetch_monkeys(3)
let:data
>
<p>{*data} " little monkeys, jumping on the bed."</p>
</Await>
}
is the same as
view! {
<Await
future=|| fetch_monkeys(3)
children=|data| view! {
<p>{*data} " little monkeys, jumping on the bed."</p>
}
/>
}
Implementations§
source§impl<T, Fut, FF, VF, V> AwaitProps<T, Fut, FF, VF, V>
impl<T, Fut, FF, VF, V> AwaitProps<T, Fut, FF, VF, V>
sourcepub fn builder() -> AwaitPropsBuilder<T, Fut, FF, VF, V, ((), (), (), ())>
pub fn builder() -> AwaitPropsBuilder<T, Fut, FF, VF, V, ((), (), (), ())>
Create a builder for building AwaitProps
.
On the builder, call .future(...)
, .blocking(...)
(optional), .local(...)
(optional), .children(...)
to set the values of the fields.
Finally, call .build()
to create the instance of AwaitProps
.
Trait Implementations§
Auto Trait Implementations§
impl<T, Fut, FF, VF, V> Freeze for AwaitProps<T, Fut, FF, VF, V>
impl<T, Fut, FF, VF, V> RefUnwindSafe for AwaitProps<T, Fut, FF, VF, V>where
FF: RefUnwindSafe,
VF: RefUnwindSafe,
impl<T, Fut, FF, VF, V> Send for AwaitProps<T, Fut, FF, VF, V>
impl<T, Fut, FF, VF, V> Sync for AwaitProps<T, Fut, FF, VF, V>
impl<T, Fut, FF, VF, V> Unpin for AwaitProps<T, Fut, FF, VF, V>
impl<T, Fut, FF, VF, V> UnwindSafe for AwaitProps<T, Fut, FF, VF, V>where
FF: UnwindSafe,
VF: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more