Intégration Framework

Démarrage rapide

Leptos
Vanilla JS
Dioxus
Yew

rs-grid-leptos fournit un composant <GridCanvas> pour les applications Leptos CSR. Il encapsule le runtime WASM, le cycle de vie du canvas, la gestion des événements et le theming dans un seul composant.

<GridCanvas
    rows=1_000_000_u64
    cols=50_usize
    row_height=32.0_f64     // optionnel, défaut 32px
    header_height=40.0_f64  // optionnel, défaut 40px
/>

API du composant

Leptos
Vanilla JS
Dioxus
Yew

Props

PropTypeDéfautDescription
rowsu64requisNombre total de lignes de données
colsusizerequisNombre total de colonnes
row_heightf6432.0Hauteur de chaque ligne de données en pixels CSS
header_heightf6440.0Hauteur de la ligne d'en-tête des colonnes

Thème

Leptos
Vanilla JS
Dioxus
Yew

Le composant lit sa palette de couleurs à partir des propriétés CSS personnalisées au moment du montage via rs-grid-web::theme_from_css_vars. Définissez les variables dans votre feuille de style :

rs-grid-theme.css
:root {
  --rs-grid-bg:               #0d1117;
  --rs-grid-header-bg:        #161b22;
  --rs-grid-border:           #30363d;
  --rs-grid-text:             #c9d1d9;
  --rs-grid-selection-bg:     rgba(56, 139, 253, 0.15);
  --rs-grid-selection-border: #388bfd;
}

Incluez le fichier via votre Trunk.toml ou une balise <link> dans index.html.

Événements

Leptos
Vanilla JS
Dioxus
Yew

Le composant Leptos attache des écouteurs pointer et wheel au canvas :

Événement navigateurGridCommand
pointerdownSelectCell / SelectRow / SelectColumn
pointerdown + ShiftExtendSelection
wheelScrollTo
ResizeObserverResize

Les événements sont convertis en valeurs GridCommand et appliqués à la prochaine frame d'animation. Vous n'avez pas besoin de gérer la boucle d'événements manuellement.

Exemple complet

Leptos
Vanilla JS
Dioxus
Yew
src/main.rs
use leptos::*;
use rs_grid_leptos::GridCanvas;

#[component]
pub fn App() -> impl IntoView {
    view! {
        <main style="width: 100vw; height: 100vh;">
            <GridCanvas
                rows=500_000_u64
                cols=20_usize
            />
        </main>
    }
}

fn main() {
    leptos::mount_to_body(App);
}
Tip

Le fichier de thème de référence se trouve dans examples/basic-leptos/rs-grid-theme.css. Copiez-le comme point de départ pour votre propre thème.

Limitations

Leptos
Vanilla JS
Dioxus
Yew
  • rs-grid-leptos est CSR uniquement — le SSR n'est pas supporté
  • Le composant s'attend à être rendu dans un environnement navigateur avec support <canvas>