我们能否将 Blazor 组件渲染为独立的 DOM 片段,或者以其他方式将其用作普通 HTML/JS 页面中的标准 Web 组件?
从 Blazor 架构的角度来看,这可能是一个天真的问题。到目前为止,我还不是 Blazor 专家,但我认为它对于遗留 Web 应用程序的增量“棕地”现代化来说可能是一种有用的技术。我很惊讶这似乎没有得到官方支持。
为了说明这一点,请考虑这个简单的 Web 组件示例,它呈现一个自定义元素<date-info>:
// define a custom web component
customElements.define("date-info", class DateInfo extends HTMLElement {
constructor() {
super();
// create an "open" (vs "closed") shadow DOM,
// i.e., accessible to the outside JavaScript
this.attachShadow({ mode: "open" });
}
async connectedCallback() {
console.log(`${this.constructor.name}.${this.connectedCallback.name} called`);
// get the content from the server,
// this could be a Blazor component markup
try {
const response …Run Code Online (Sandbox Code Playgroud)