Skip to content

Unexpected full refresh on navigation #777

@AMNRG

Description

@AMNRG

Describe the bug
Navigating between Home and Test results sometimes in a full refresh.

use sycamore::prelude::*;
use sycamore_router::{HistoryIntegration, Route, Router};

#[derive(Route, Copy, Clone)]
enum AppRoutes {
    #[to("/")]
    Home,
    #[to("/test")]
    Test,
    #[not_found]
    NotFound,
}

#[component]
fn App() -> View {
    view! {
        Router(
            integration=HistoryIntegration::new(),
            view=move |route: ReadSignal<AppRoutes>| {
                view! {
                    (match route.get() {
                        AppRoutes::Home => view! { "Home" Nav() },
                        AppRoutes::Test => view! { "Test" Nav() },
                        AppRoutes::NotFound => view! { "Not found" },
                    })
                }
            }
        )
    }
}

#[component]
pub fn Nav() -> View {
    view! {
        nav {
            ul {
                li { a(href="/") { "Home" } }
                li { a(href="/test") { "Test" } }
            }
        }
    }
}

fn main() {
    sycamore::render(App);
}

To Reproduce
Steps to reproduce the behavior:

  1. Click on Test.
  2. Click on Home => Unexpected full refresh.

Expected behavior
No full refresh when navigation between Home and Test.

Environment

  • Sycamore: main

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-routerArea: routerC-bugCategory: bug, something isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions