En Dotnetconf, hace dos semanas, escuché que ahora es posible incluir archivos Javascript locales en los componentes de Blazor. Eso suena muy interesante. Supongo que el enfoque sigue siendo usar JSIniterop y hacer referencia al archivo del módulo.
PERO, ¿cómo se hace referencia al archivo JS? He probado todas las variantes creativas posibles pero hasta ahora sin éxito.
Estoy sorprendido de buscar en Google en todas partes, pero aún no encuentro guías ni muestras sobre esto. Todos los consejos son apreciados.
Puede crear un archivo de código .js junto al archivo .razor.cs y cargar ese archivo en tiempo de ejecución. Se describe aquí . También encontré la presentación de esta función aquí y el repositorio de github aquí .
Supongamos que tiene ComponentA con archivos ComponentA.razor , ComponentA.razor.cs y ComponentA.razor.js en la carpeta Pages . Puede cargar este módulo durante la inicialización del componente así:
[Inject] public IJSRuntime JS { get; set; } private IJSObjectReference module { get; set; } protected override async Task OnInitializedAsync() { module = await JS.InvokeAsync<IJSObjectReference>("import", "./Pages/ComponentA.razor.js"); } Pero si su componente está definido en un proyecto de biblioteca de componentes, entonces debe usar una ruta de archivo diferente. Por ejemplo, si su proyecto se llama AppComponents , esta ruta sería ./_content/AppComponents/ComponentA.razor.js .