Browse Source

Added `prerender test` demo.

InteractiveServerRenderMode(prerender-true)
maliming 1 year ago
parent
commit
edc226387b
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 41
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml
  2. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor
  3. 61
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Books.razor
  4. 41
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml

41
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml

@ -1,41 +0,0 @@
@page "/"
@namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered.Pages
@using System.Globalization
@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite
@using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling
@using Volo.Abp.Localization
@using Microsoft.AspNetCore.Components.Web
@{
Layout = null;
var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty;
}
<!DOCTYPE html>
<html lang="@CultureInfo.CurrentCulture.Name" dir="@rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MyCompanyName.MyProjectName.Blazor.Server</title>
<base href="~/" />
<abp-style-bundle name="@BlazorLeptonXLiteThemeBundles.Styles.Global"/>
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
<body class="abp-application-layout bg-light @rtl">
<component type="typeof(App)" render-mode="Server" />
<div id="blazor-error-ui">
<environment include="Staging,Production">
An error has occurred. This application may no longer respond until reloaded.
</environment>
<environment include="Development">
An unhandled exception has occurred. See browser dev tools for details.
</environment>
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<abp-script-bundle name="@BlazorLeptonXLiteThemeBundles.Scripts.Global" />
</body>
</html>

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor

@ -24,7 +24,7 @@
</head> </head>
<body> <body>
<Routes @rendermode="InteractiveServer" /> <Routes @rendermode="new InteractiveServerRenderMode(prerender: true)" />
<AbpScripts BundleName="@BlazorLeptonXLiteThemeBundles.Scripts.Global" /> <AbpScripts BundleName="@BlazorLeptonXLiteThemeBundles.Scripts.Global" />

61
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/Pages/Books.razor

@ -0,0 +1,61 @@
@page "/books"
@using Volo.Abp.MultiTenancy
@inject PersistentComponentState ApplicationState
@inject ICurrentTenant CurrentTenant
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
<p>Hello by @Token</p>
@code {
private int currentCount;
private string? Token { get; set; } = default!;
protected override async Task OnInitializedAsync()
{
ApplicationState.RegisterOnPersisting(OnPersistingAsync, RenderMode.InteractiveServer);
ApplicationState.RegisterOnPersisting(PersistCount);
if (ApplicationState.TryTakeFromJson<string> ("name", out var restored))
{
Token = $"Token is restored: {restored}";
}
else
{
Token = "Token is not restored";
}
if (!ApplicationState.TryTakeFromJson<int>(nameof(currentCount), out var restoredCount))
{
currentCount = Random.Shared.Next(100);
}
else
{
currentCount = restoredCount!;
}
}
private Task PersistCount()
{
ApplicationState.PersistAsJson(nameof(currentCount), currentCount);
return Task.CompletedTask;
}
private void IncrementCount() => currentCount++;
async Task OnPersistingAsync()
{
ApplicationState.PersistAsJson("name", "hemant");
await Task.CompletedTask;
}
}

41
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml

@ -1,41 +0,0 @@
@page "/"
@namespace MyCompanyName.MyProjectName.Blazor.Server.Pages
@using System.Globalization
@using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite
@using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling
@using Volo.Abp.Localization
@using Microsoft.AspNetCore.Components.Web
@{
Layout = null;
var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty;
}
<!DOCTYPE html>
<html lang="@CultureInfo.CurrentCulture.Name" dir="@rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MyCompanyName.MyProjectName.Blazor.Server</title>
<base href="~/" />
<abp-style-bundle name="@BlazorLeptonXLiteThemeBundles.Styles.Global" />
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
<body class="abp-application-layout bg-light @rtl">
<component type="typeof(App)" render-mode="Server" />
<div id="blazor-error-ui">
<environment include="Staging,Production">
An error has occurred. This application may no longer respond until reloaded.
</environment>
<environment include="Development">
An unhandled exception has occurred. See browser dev tools for details.
</environment>
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<abp-script-bundle name="@BlazorLeptonXLiteThemeBundles.Scripts.Global" />
</body>
</html>
Loading…
Cancel
Save