Crate leptos_meta

source
Expand description

§Leptos Meta

Leptos Meta allows you to modify content in a document’s <head> from within components using the Leptos web framework.

Document metadata is updated automatically when running in the browser. For server-side rendering, after the component tree is rendered to HTML, [MetaContext::dehydrate] can generate HTML that should be injected into the <head> of the HTML document being rendered.

use leptos::prelude::*;
use leptos_meta::*;

#[component]
fn MyApp() -> impl IntoView {
    // Provides a [`MetaContext`], if there is not already one provided.
    provide_meta_context();

    let (name, set_name) = create_signal("Alice".to_string());

    view! {
      <Title
        // reactively sets document.title when `name` changes
        text=move || name.get()
        // applies the `formatter` function to the `text` value
        formatter=|text| format!("“{text}” is your name")
      />
      <main>
        <input
          prop:value=move || name.get()
          on:input=move |ev| set_name.set(event_target_value(&ev))
        />
      </main>
    }
}

§Feature Flags

  • csr Client-side rendering: Generate DOM nodes in the browser
  • ssr Server-side rendering: Generate an HTML string (typically on the server)
  • hydrate Hydration: use this to add interactivity to an SSRed Leptos app
  • stable By default, Leptos requires nightly Rust, which is what allows the ergonomics of calling signals as functions. Enable this feature to support stable Rust.

Important Note: You must enable one of csr, hydrate, or ssr to tell Leptos which mode your app is operating in.

Structs§

Functions§

  • A component to set metadata on the document’s <body> element from within the application.
  • Injects an HTMLLinkElement into the document head that loads a cargo-leptos-hashed stylesheet.
  • A component to set metadata on the document’s <html> element from within the application.
  • Injects an HTMLLinkElement into the document head, accepting any of the valid attributes for that tag.
  • Injects an HTMLMetaElement into the document head to set metadata
  • During server rendering, inserts the meta tags that have been generated by the other components in this crate into the DOM. This should be placed somewhere inside the <head> element that is being used during server rendering.
  • Injects an HTMLScriptElement into the document head, accepting any of the valid attributes for that tag.
  • Injects an HTMLStyleElement into the document head, accepting any of the valid attributes for that tag.
  • Injects an HTMLLinkElement into the document head that loads a stylesheet from the URL given by the href property.
  • A component to set the document’s title by creating an HTMLTitleElement.
  • Provides a MetaContext, if there is not already one provided. This ensures that you can provide it at the highest possible level, without overwriting a MetaContext that has already been provided (for example, by a server-rendering integration.)
  • Returns the current MetaContext.