Bienvenida e Introducción

1

Bienvenida y Presentación del proyecto: PlatziRooms

2

Creación y configuración inicial del proyecto utilizando VUE CLI 3

3

Boilerplate y Limpieza del proyecto

Render Functions y JSX

4

¿Que son las Render Functions y JSX?

5

Preparando nuestro entorno para un prototipo

6

Creación de un componente con createElement

7

Utilizando JSX para la creación de un componente

8

Utilizando Slots con Render Functions y JSX

9

Creando un Modal de Login para PlatziRooms

10

Creando la lógica general de nuestros modales con Vuex

11

Creando el contenido de nuestro modal

Componentes controlados y uso de librerías externas

12

Componentes Controlados y Variables Personalizadas

13

Construcción del componente de Recordar Contraseña

14

Creación de un componente Slider utilizando la librería tiny-slider

High Order Functions

15

¿Qué son las High Order Functions? - Crea tu primera HOF

16

Vuex

17

Obtener datos usando Vuex

18

Crea un getter dinámico en Vuex utilizando HOF

19

Creación de la vista para creación de publicaciones

20

Agregando datos con Vuex

Base de datos en tiempo real con Firebase

21

Instalación y Configuracion de Firebase Realtime Database

22

Obteniendo los datos desde Firebase Realtime Database

23

Agregando la consulta de usuarios

24

Almacenando nuevas publicaciones en Firebase Realtime Database

25

Perfeccionando el flujo de navegación de nuestra App

Autenticación con Firebase

26

Configuracion Inicial para trabajar con Firebase Authentication

27

Agregando nuevos usuarios en firebase autentication

28

Inicio de sesión de usuario

29

Cierre de sesión de usuario

30

Protegiendo páginas utilizando Navigation Guards

Scoped Slots

31

¿Qué son los Scoped Slots? Dónde utilizarlos y por qué

32

Integración de Scoped Slots en Platzi Rooms

Deploy

33

Creando y desplegando nuestra app en Heroku

34

Conclusiones y Despedida

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Componentes Controlados y Variables Personalizadas

12/34
Recursos

Los componentes controlados nos ayudan a tener el control sobre diferentes partes de un componente a través de parámetros.

Podemos usar la propiedad v-model para conectar variables con componentes y personalizar el contenido de la aplicación. Sin embargo, toda la lógica de nuestros componentes quedan en un mismo lugar, lo que los hace más difícil reutilizar. Por lo tanto, vamos a crear un nuevo componente para cada parte o funcionalidad reutilizable de nuestra aplicación pero configurados de tal forma que la lógica es controlada por los componentes padres, no por el mismo componente.

Aportes 22

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Los componentes controlados son componentes super reutilizables que necesitan ser llamados por otros componentes para tener su lógica completa y funcionar correctamente.

Es como si dejaran algunos últimos detalles de implementación para después pero, en realidad, le dejan la tarea al componente papá para poder funcionar de formas diferentes de acuerdo a las necesidades de cada parte de la aplicación.

Vale, con componentes también podemos hacer el TwoWay Data Binding, en donde para usar el v-model tenemos que lanzar un evento llamado “input” y escuchar una propiedad llamada “value”,pero para no tener que usar siempre esos nombres, podemos personalizarlos usando la propiedad “model” que tiene Vue,

Y cuándo un componente no es controlado?

Se trata simplemente de hacer que el componente sea mas flexible y reutilizable. El termino “componente controlado” no se si es el adecuado, o si se usa de forma amplia. Los camponentes tienen entradas y salidas de datos (por medio de eventos) y mientras mas genéricos sean, mas fácil es usarlos dentro del mismo proyecto…o inclusive, en otros proyectos…

Un tema sencillo con una explicación complicada

Alguien tiene recursos sobre este tema, el profe lo complicó demasiado y el tema se ve interesante


<toggle-input
	v-model="form.newsletter"
></toggle-input>

// hace lo mismo que...

<toggle-input
	:value="form.newsletter"
	@input="(value) => { this.form.newsletter = value }"
></toggle-input>

Dejo el link donde se explica más detalladamente
https://vuejs.org/v2/guide/components.html#Emitting-a-Value-With-an-Event

como haría en el caso que desee enviarle varios parametros desde el padre al hijo…? es decir como haria para recibir varios props.
En ese caso no puedo usar v-model así

Por si desean profundizar más acerca de este tema del Data Binding, les dejo el siguiente enlace que apoya a esta clase: https://platzi.com/clases/1145-vuejs-profesional/7795-data-binding/
Espero que les sirva 😉

El profe no hace entender mucho, alguién tiene otros recursos para seguir aprendiendo, como videos o blogs que hablen de este tema?

Excelente clase! Creería que es una de las mas útiles para entender el two way data binding vue. Gracias

Para hacer esto en vue3 pueden revisar este comentario

A ustedes esto no les marca error en css
esta en el componente modal

	@apply absolute bg-white p-4 shadow-lg rounded;
}

Esta clase no le entendí nada.
Bastaba con que dijiera que el v-model se comporta de forma distinta en los componentes hijos.

Los estilos CSS del ToggleInput

`<style>
.toggle {
  position: relative;
  display: inline-block;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  border-radius: 9999px;
  cursor: pointer;
  height: 1.5rem;
  width: 3rem;
}
.toggle:focus {
  outline: 0;
  -webkit-box-shadow: 0 0 0 4px rgba(52, 144, 220, 0.5);
  box-shadow: 0 0 0 4px rgba(52, 144, 220, 0.5);
}
.toggle:before {
  display: inline-block;
  border-radius: 9999px;
  height: 100%;
  width: 100%;
  background-color: #dae1e7;
  content: "";
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}
.toggle[aria-checked="true"]:before {
  background-color: #3490dc;
}
.toggle:after {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 9999px;
  height: 1.5rem;
  width: 1.5rem;
  background-color: #fff;
  border-width: 1px;
  border-color: #dae1e7;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
  content: "";
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
  -webkit-transform: translateX(0);
  transform: translateX(0);
}
.toggle[aria-checked="true"]:after {
  -webkit-transform: translateX(1.5rem);
  transform: translateX(1.5rem);
}
</style>````

parte en que empieza a hacer el v-model

Custom model

Custom model prop names

Me toco ver dos veces el video, pero ya entendí como funciona bien los eventos del hijo que se envían al podre y como estos se escuchan

Si entendí bien v-model sirve para evitar datos (props para el hijo) y escuchar el evento emitido por el hijo? Poniendo las propiedades de model en el hijo cierto, para especificar cuál es prop y cuál el evento a emitir?

Excelente no sabía que podía aplicar v-model en custom components! A aplicarlo desde ahora!

Excelente clase, no sabia que podia usar v-modal para componentes persoanlizados. Pensaba que unicamente se podia usar en campos Inputs. Ahora voy a utilizarlos y a crear personalizados en lugar de utilizar por default value y emit input. Desconocia por completo model dentro del componente vue.