Será possível manipular o DOM do código C # diretamente sem invocar funções javascript?
Eu pensei em coisas básicas assim
var elem = document.getElementById("123");
elem.AddOrUpdateStyle("background-color", "red");
elem.AddOrUpdateStyle("height", "150px");
elem.Remove("height");
var boxes = document.getElementsByClassName("box");
foreach (var box in boxes)
{
if (box.Classes.Contains("hidden"))
{
box.AddOrUpdateStyle("display", "none");
continue;
}
box.Value = "";
box.SetAttribute("placeholder", "Type here...");
}
É possível?
A manipulação de DOM si atualmente não é suportada por web assembly (https://github.com/WebAssembly/proposals/issues/16, https://github.com/WebAssembly/design/blob/master/Web.md), então ganhou não será suportado por mono wasm em breve. Você pode fazer isso apenas usando o estado atual do Blazor: componente personalizado e interoperabilidade JS.
Acho que esse problema deve ser reaberto. Os componentes do Razor devem ter essa capacidade, mesmo que seja feito com a interoperabilidade JS sob o capô. ElementRef deve ser estendido para oferecer suporte à maioria das funções JS básicas.
O acesso direto ao DOM será o motivo para eu experimentar o Blazor.
Isso é obrigatório para o break-thru do Blazor.
Comentários muito úteis
Acho que esse problema deve ser reaberto. Os componentes do Razor devem ter essa capacidade, mesmo que seja feito com a interoperabilidade JS sob o capô. ElementRef deve ser estendido para oferecer suporte à maioria das funções JS básicas.