RosettaJS: Comparativas de Vue, React y Angular

Logica de vista

Binding Dinámico de Propiedades

El binding dinámico de propiedades conecta valores de la aplicación con propiedades de elementos HTML para mantener la interfaz actualizada cuando esos valores cambian.

Ejemplo

Controlar si un botón está desactivado con una variable.

Vuev-bind

<script setup lang="ts">
import { ref } from 'vue'

const isDisabled = ref(true)
</script>

<template>
  <button :disabled="isDisabled">Save changes</button>
</template>

Anteponer ':' al nombre de la propiedad es la forma abreviada de usar la directiva v-bind.

ReactJSX expressions

import { useState } from 'react'

function ProfileForm() {
  const [isDisabled] = useState(true)

  return (
    <>
      <button disabled={isDisabled}>Save changes</button>
    </>
  )
}

En JSX, el valor de una propiedad se escribe entre llaves para evaluar una expresión de JavaScript.

Angularproperty binding

import { Component, signal } from '@angular/core'

@Component({
  selector: 'app-profile-form',
  standalone: true,
  template: `
    <button [disabled]="isDisabled()">Save changes</button>
  `,
})
export class ProfileFormComponent {
  isDisabled = signal(true)
}

Rodear el nombre de la propiedad con corchetes crea un property binding.