Struct NodeRef

Source
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§

Source§

impl NodeRef

Source

pub fn new() -> Self

Alias to create_node_ref.

Source

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.

Source

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).

Source

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§

Source§

impl Clone for NodeRef

Source§

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
Source§

impl Debug for NodeRef

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for NodeRef

Source§

fn default() -> Self

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

impl PartialEq for NodeRef

Source§

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.
Source§

impl Copy for NodeRef

Source§

impl Eq for NodeRef

Source§

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 u8)

🔬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.