Executando verificação de segurança...
1

Em projetos pessoais estou usando lit-html (https://lit.dev/docs/libraries/standalone-templates/) puro, só para renderizar jsx, bind de propriedades e ações.

Daí combino com webcomponents.

ex


import {render} from '<cdn>'

class Component extends HTMLElement {

    constructor() {
       super({});
    }

    connectedCallback() {
         render(this.template())
    }
    
    template() {
        throw Error('not implemented')
    }
}

import {html} from 'cdn';

class MyPage extendes Component {

     constructor() {
         super();
      }
      
      teste(){
          console.log('teste');
       }
       
      template() {
          return html`<div>
              <button @click=${ e => this.teste()}> Teste </button>
              `;
       }
       
 }
 
 customElements.define('app-my-page', MyPage)

Daí é só importar a o componente na página que for utilizar.

Carregando publicação patrocinada...