diff --git a/docs/dotnet/asp.net/blazor.md b/docs/dotnet/asp.net/blazor.md index 9f5c2d8..85fbaf8 100644 --- a/docs/dotnet/asp.net/blazor.md +++ b/docs/dotnet/asp.net/blazor.md @@ -261,6 +261,16 @@ Project ## State Management +## Passing state with `NavigationManager` + +It's now possible to pass state when navigating in Blazor apps using the `NavigationManager`. + +```cs +navigationManager.NavigateTo("/", new NavigationOptions { HistoryEntryState = value }); +``` + +This mechanism allows for simple communication between different pages. The specified state is pushed onto the browser’s history stack so that it can be accessed later using either the `NavigationManager.HistoryEntryState` property or the `LocationChangedEventArgs.HistoryEntryState` property when listening for location changed events. + ### Blazor WASM ```cs @@ -355,6 +365,9 @@ public class StateContainer // bind to child component {PROPERTY} // bind to child component {PROPERTY}, listen for custom event + + // run async logic after bind event completion + // two-way data binding

@code { @@ -372,11 +385,17 @@ public class StateContainer await PropertyChanged.InvokeAsync(e, argument); // notify parent bound prop has changed await elementReference.FocusAsync(); // focus an element in code } + + [Parameter] public TValue Value { get; set; } + [Parameter] public EventCallback ValueChanged { get; set; } } ``` **NOTE**: When a user provides an unparsable value to a data-bound element, the unparsable value is automatically reverted to its previous value when the bind event is triggered. +> **Note**: The `@bind:get` and `@bind:set` modifiers are always used together. +> `The @bind:get` modifier specifies the value to bind to and the `@bind:set` modifier specifies a callback that is called when the value changes + ## Javascript/.NET Interop [Call Javascript from .NET](https://docs.microsoft.com/en-us/aspnet/core/blazor/call-javascript-from-dotnet)