sycamore::prelude

Struct NodeRef

pub struct NodeRef(/* private fields */);
Expand description

A reference to a web_sys::Node. This allows imperative access to the node.

§Example

#[component]
fn Component() -> View {
    let div_ref = create_node_ref();
    view! {
        div(ref=div_ref)
    }
}

Implementations§

§

impl NodeRef

pub fn new() -> NodeRef

Alias to create_node_ref.

pub fn get(&self) -> Node

Gets the raw node stored inside the node ref.

This attempts to cast the node to the specified type.

§Example

Node refs are generally meant to be accessed in callbacks or in on_mount. Accessing the node ref directly in the body of the component will panic because the node ref has not yet been set.

let div_ref = create_node_ref();
on_mount(move || {
    let node = div_ref.get();
});
view! {
    div(ref=div_ref)
}
§Panics

Panics if the node ref is not set yet or is the wrong type.

For a non panicking version, see NodeRef::try_get.

pub fn try_get(&self) -> Option<Node>

Tries to get the raw web_sys node stored inside the node ref. Returns None if the node ref has not yet been set (i.e. the node has not yet been rendered into the DOM).

pub fn set(&self, node: Option<Node>)

Sets the node ref with the specified node.

This method should be rarely used. Instead, use the ref= syntax in the view! macro to set the node.

§Example

Setting the node using the ref= syntax:

#[component]
fn Component() -> View {
    let div_ref = create_node_ref();
    view! {
        div(ref=div_ref) // This assigns the node ref a value.
    }
}

Trait Implementations§

§

impl Clone for NodeRef

§

fn clone(&self) -> NodeRef

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for NodeRef

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for NodeRef

§

fn default() -> NodeRef

Returns the “default value” for a type. Read more
§

impl PartialEq for NodeRef

§

fn eq(&self, other: &NodeRef) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Copy for NodeRef

§

impl Eq for NodeRef

§

impl StructuralPartialEq for NodeRef

Auto Trait Implementations§

§

impl Freeze for NodeRef

§

impl !RefUnwindSafe for NodeRef

§

impl !Send for NodeRef

§

impl !Sync for NodeRef

§

impl Unpin for NodeRef

§

impl !UnwindSafe for NodeRef

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.