Saltar al contenido principal

Visión general del framework Aura

Aura es un marco de aplicación web de código abierto que permite a los desarrolladores construir aplicaciones web escalables y de alto rendimiento. Está basado en el patrón arquitectónico Modelo-Vista-Controlador (MVC) y proporciona un conjunto de herramientas y bibliotecas poderosas para simplificar el proceso de desarrollo.

Historia

Aura fue desarrollado inicialmente por el equipo de Salesforce.com para construir sus propias aplicaciones web. Más tarde fue liberado como código abierto y puesto a disposición del público en 2013. Desde entonces, ha ganado popularidad entre los desarrolladores debido a su flexibilidad, capacidad de extensión y facilidad de uso.

Características

1. Arquitectura MVC

Aura sigue el patrón arquitectónico MVC, que ayuda a separar la lógica de la aplicación de la capa de presentación. Esta separación mejora la reutilización de código, la mantenibilidad y la testabilidad.

2. Desarrollo basado en componentes

Aura permite a los desarrolladores construir aplicaciones web utilizando componentes reutilizables. Estos componentes encapsulan tanto la interfaz de usuario como la lógica de negocio, lo que los hace modulares y fáciles de mantener. Los componentes se pueden combinar para crear estructuras de aplicación complejas.

Aquí hay un ejemplo de un componente Aura simple:

<aura:component>
<aura:attribute name="message" type="String" default="¡Hola Aura!" />
<h1>{!v.message}</h1>
</aura:component>

En este ejemplo, el componente muestra un mensaje pasado como atributo. La sintaxis {!v.message} vincula el valor del atributo a la interfaz de usuario, haciéndolo dinámico.

3. Componentes web Lightning

Aura se integra perfectamente con Lightning Web Components (LWC), que es un moderno marco de interfaz de usuario desarrollado por Salesforce. LWC proporciona un conjunto de componentes de interfaz de usuario reutilizables y un modelo de desarrollo basado en estándares web como HTML, CSS y JavaScript.

Los componentes de Aura pueden aprovechar los componentes de LWC, lo que permite a los desarrolladores aprovechar las últimas tecnologías de interfaz de usuario mientras siguen utilizando el marco de Aura.

4. Acciones en el lado del servidor

Aura proporciona una forma sencilla de comunicarse con el servidor mediante acciones en el lado del servidor. Estas acciones permiten a los desarrolladores realizar operaciones en el lado del servidor, como consultas a una base de datos, llamadas a una API externa o procesamiento de lógica de negocio.

Aquí hay un ejemplo de una acción en el lado del servidor en Aura:

({
doServerAction: function(component, event, helper) {
var action = component.get("c.serverMethod");
action.setParams({ param1: "valor1" });

action.setCallback(this, function(response) {
if (response.getState() === "SUCCESS") {
var result = response.getReturnValue();
// Procesar el resultado
}
});

$A.enqueueAction(action);
}
})

En este ejemplo, la función doServerAction llama a un método en el lado del servidor llamado serverMethod y procesa la respuesta.

5. Arquitectura basada en eventos

Aura sigue una arquitectura basada en eventos, lo que permite que los componentes se comuniquen entre sí disparando y manejando eventos. Este modelo de comunicación desacoplado promueve el acoplamiento flexible y permite a los desarrolladores construir aplicaciones flexibles y escalables.

Aquí hay un ejemplo de un controlador de eventos en Aura:

<aura:handler name="myEvent" event="c:MyEvent" action="{!c.handleEvent}" />

En este ejemplo, la función handleEvent se llama cada vez que se dispara un evento MyEvent.

Ejemplos

Ejemplo 1: Componente simple

Creemos un componente Aura simple que muestra un botón y un contador.

<aura:component>
<aura:attribute name="count" type="Integer" default="0" />

<h1>Contador: {!v.count}</h1>
<button onclick="{!c.incrementCount}">Incrementar</button>
</aura:component>

En el controlador:

({
incrementCount: function(component, event, helper) {
var count = component.get("v.count");
component.set("v.count", count + 1);
}
})

Este componente muestra un contador que se incrementa cada vez que se hace clic en el botón "Incrementar".

Ejemplo 2: Obtención de datos en el lado del servidor

Creemos un componente Aura que obtiene una lista de contactos desde el servidor y los muestra en una tabla.

<aura:component>
<aura:attribute name="contacts" type="List" />

<table>
<thead>
<tr>
<th>Nombre</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<aura:iteration items="{!v.contacts}" var="contact">
<tr>
<td>{!contact.Name}</td>
<td>{!contact.Email}</td>
</tr>
</aura:iteration>
</tbody>
</table>

<button onclick="{!c.loadContacts}">Cargar Contactos</button>
</aura:component>

En el controlador:

({
loadContacts: function(component, event, helper) {
var action = component.get("c.getContacts");

action.setCallback(this, function(response) {
if (response.getState() === "SUCCESS") {
component.set("v.contacts", response.getReturnValue());
}
});

$A.enqueueAction(action);
}
})

Este componente obtiene una lista de contactos desde el servidor y los muestra en una tabla cuando se hace clic en el botón "Cargar Contactos".

Conclusión

Aura es un poderoso marco de aplicación web que proporciona a los desarrolladores un conjunto completo de características para construir aplicaciones web escalables y eficientes. Con su enfoque de desarrollo basado en componentes, acciones en el lado del servidor y arquitectura basada en eventos, Aura simplifica el proceso de desarrollo y promueve la reutilización y mantenibilidad del código.

Para obtener más información, documentación oficial y ejemplos adicionales, puedes visitar el sitio web oficial del Framework Aura.