L'integrazione di librerie JavaScript in un'applicazione Blazor può diventare complessa, specialmente quando si tratta di moduli JavaScript. Con .NET 9, il processo di importazione di questi moduli è stato semplificato.
Supponiamo di avere un modulo JavaScript denominato toast.js per mostrare notifiche:
// toast.js
export class NotificationHelper {
async showToast(message, type = 'info', options = {}) {
// [..]
}
}
export default new NotificationHelper();
In un componente Blazor, è possibile importare questo modulo e invocare i suoi metodi come segue:
@inject IJSRuntime JSRuntime
<button @onclick="() => ShowNotification("Hello World")">
Mostra Notifica
</button>
@code {
async Task ShowNotification(string message) {
// caricamento modulo
var module = await JSRuntime.InvokeAsync<IJSObjectReference>(
"import", "./js/toast.js");
// esecuzione metodo
await module.InvokeVoidAsync("default.showToast", message, "success");
}
}
Il codice carica il modulo toast.js e chiama il metodo showToast. Tuttavia, senza ulteriori configurazioni, il browser potrebbe memorizzare nella cache il modulo, causando problemi quando vengono apportate modifiche.
Grazie all'utilizzo di MapStaticAssets, già trattato nello script precedente, possiamo ovviare a questi problemi, lasciando che sia Blazor a gestire la distribuzione dei file javascript
// Rimozione chiamata UseStaticFiles // app.UseStaticFiles(); app.MapStaticAssets();
A questo punto basterà apportare una modifica all'interno del tag head per lasciare che sia Blazor a creare automaticamente una mappa di importazione che colleghi i moduli JavaScript ai loro nomi di file univoci, rispettando il versionamento.
<!-- App.razor --> <head> <!-- [...] --> <ImportMap /> </head>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Controllare la velocità di spostamento su una pagina HTML
Gestire pubblicazione Kubernetes tramite .NET Aspire
Integrare SQL Server in un progetto .NET Aspire
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Ricevere notifiche sui test con Azure Load Testing
Ridimensionamento automatico input tramite CSS
.NET Aspire per applicazioni distribuite
Gestire progetti .NET + React in .NET Aspire
Ridurre il reflow ottimizzando il CSS
Combinare Container Queries e Media Queries
Abilitare .NET 10 su Azure App Service e Azure Functions
Centralizzare gli endpoint AI Foundry con Azure API Management
I più letti di oggi
- Creare una libreria CSS universale: Clip-path
- Custom Control con il supporto al databind per ASP.NET 2.0
- Community Days 2012 - Milano
- Preview 4 per ASP.NET MVC
- È ufficiale: Visual Studio LightSwitch 2011 sarà rilasciato il 26 luglio
- Rilasciata la versione 1.1 di Fujitsu NetCOBOL
- Speciale PDC 2003 in tempo reale
- Azure Mobile Services: costruire il back-end per le app


