Concordo que atualmente as pessoas estão querendo só trabalhar com frameworks, sendo que em grande partes do caso da pra usar só javascript (ou typescript), css(com preprocessor caso quiser), html com qualquer bundler (vite,webpack,parcel,grunt,...).

Mas falar que todas são horríveis é vacilo, todas tem propósito e até são semelhantes, mas por exemplo o React só deu seu BOOM! com os hooks, antes quando era tudo classes sem babel e jsx usar React nessa época era semelhante a usar a própria API nativa Web Components

Um componente feito com JavaScript puro.

class Counter extends HTMLElement {
  n = 0;

  constructor() {
    super();
    let display = document.createElement("h1");
    let i = document.createElement("button");
    let d = document.createElement("button");

    display.innerHTML = this.n;
    i.innerHTML = "+";
    d.innerHTML = "-";

    i.onclick = () => this.inc();
    d.onclick = () => this.dec();

    this.appendChild(display);
    this.appendChild(i);
    this.appendChild(d);
  }
  
  update() { this.children[0].innerHTML = this.n; }
  inc() { this.n++; this.update(); }
  dec() { this.n--; this.update(); }
  
  connectedCallback() {
      console.log("Counter was mounted");
  }
  
  disconnectedCallback() {
    console.log("Bye!");
  }
}

customElements.define("my-counter", Counter);

Mesmo componente feito com svelte (eu sei que svelte é compilador não framework, isso é só um exemplo)

<script>
import { onMount } from 'svelte';

var n = 0;

onMount(() => {
    console.log("Counter was mounted");
    return () => console.log("bye!");
})
</script>

<h1>{n}</h1>
<button on:click={() => n++}>+</button>
<button on:click={() => n--}>-</button>

Viu como uma framework pode facilitar o trabalho! tudo bem eu entendo que vai ter programadores (ou pseudo-programadores kkkkkkk) que vai direto pra um framework e não vai entender que React, Vue,Solid,... por trás disso é tudo objeto, classes (pois são feito com JavaScript) e vira fanboy de framework.