Curso de Vue JS - Tutorial en Español 😍 [Desde Cero] (Parte II)

Curso de Vue JS - Tutorial en Español 😍 [Desde Cero]



#10 Introducción a Vuex (Instalación con CDN) | Curso de Vue.js 😍 Desde Cero


Apuntes:

  • Página de Vuex.
  • Crear un nuevo proyeccto e incluir Vuex.
  • Ir la página de Vuex a la parte de instalación.
  • Hacer click abajo de Descarga directa / CDN.
  • Se desplegará una página con la librería de Vuex, finalmente copiar la url de la página y construir un script con esa dirección para incluirlo en el head del archivo html.
  • index.html:
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vuex</title>
    <!-- development version, includes helpful console warnings -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- script de Vuex -->
    <script src="https://unpkg.com/vuex@3.5.1/dist/vuex.js"></script> 
</head>
<body>
    <div id="app" class="container">
        <titulo></titulo>
    </div>
    <script>
        Vue.component('titulo',{
            template: //
            `
            <div>
                <h1>numero {{$store.state.numero}}</h1>
                <hijo></hijo>
            </div>
            `
        });
        Vue.component('hijo',{
            template: //
            `
            <div>
                <button @click="$store.commit('aumentar')">+</button>
                <h1>numero {{$store.state.numero}}</h1>
            </div>
            `
        });
        const store = new Vuex.Store({
            state:{
                numero: 10
            },
            mutations:{
                aumentar(state){
                    //this.state.numero++
                    state.numero++
                }
            }
        });
        new Vue({
            el: '#app',
            // es lo mismo escribir un solo estore
            store: store
        })
    </script>
</body>
</html>

#11 mapState con Vuex | Curso de Vue.js 😍 Desde Cero


Apuntes:

  • index.html:
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vuex</title>
    <!-- development version, includes helpful console warnings -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- script de Vuex -->
    <script src="https://unpkg.com/vuex@3.5.1/dist/vuex.js"></script> 
</head>
<body>
    <div id="app" class="container">
        <titulo></titulo>
    </div>
    <script>
        Vue.component('titulo',{
            template: //
            `
            <div>
                <h1>numero {{numero}}</h1>
                <hijo></hijo>
            </div>
            `,
            computed:{
                ...Vuex.mapState(['numero'])
            }
        });
        Vue.component('hijo',{
            template: //
            `
            <div>
                <button @click="$store.commit('aumentar')">+</button>
                <h1>numero {{$store.state.numero}}</h1>
            </div>
            `
        });
        const store = new Vuex.Store({
            state:{
                numero: 10
            },
            mutations:{
                aumentar(state){
                    //this.state.numero++
                    state.numero++
                }
            }
        });
        new Vue({
            el: '#app',
            // es lo mismo escribir un solo estore
            store: store
        })
    </script>
</body>
</html>

#12 mapMutation y Parámetros en Mutation con Vuex | Curso de Vue.js 😍 Desde Cero


Apuntes:

  • index.html:
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vuex</title>
    <!-- development version, includes helpful console warnings -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- script de Vuex -->
    <script src="https://unpkg.com/vuex@3.5.1/dist/vuex.js"></script> 
</head>
<body>
    <div id="app" class="container">
        <titulo></titulo>
    </div>
    <script>
        Vue.component('titulo',{
            template: //
            `
            <div>
                <h1>numero {{numero}}</h1>
                <hijo></hijo>
            </div>
            `,
            computed:{
                ...Vuex.mapState(['numero'])
            }
        });
        Vue.component('hijo',{
            template: //
            `
            <div>
                <button @click="aumentar">+</button>
                <button @click="disminuir(2)">-</button>
                <h1>numero {{numero}}</h1>
            </div>
            `,
            computed:{
                ...Vuex.mapState(['numero'])
            },
            methods:{
                ...Vuex.mapMutations(['aumentar','disminuir'])
            }
        });
        const store = new Vuex.Store({
            state:{
                numero: 10
            },
            mutations:{
                aumentar(state){
                    //this.state.numero++
                    state.numero++
                },
                disminuir(staten){
                    state.numero -= n
                }
            }
        });
        new Vue({
            el: '#app',
            // es lo mismo escribir un solo estore
            store: store
        })
    </script>
</body>
</html>

#13 Action y mapAction con Vuex | Curso de Vue.js 😍 Desde Cero


Apuntes:

  • index.html:
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vuex</title>
    <!-- development version, includes helpful console warnings -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- script de Vuex -->
    <script src="https://unpkg.com/vuex@3.5.1/dist/vuex.js"></script> 
</head>
<body>
    <div id="app" class="container">
        <titulo></titulo>
    </div>
    <script>
        Vue.component('titulo',{
            template: //
            `
            <div>
                <h1>numero {{numero}}</h1>
                <hijo></hijo>
            </div>
            `,
            computed:{
                ...Vuex.mapState(['numero'])
            }
        });

        Vue.component('hijo',{
            template: //
            `
            <div>
                <button @click="aumentar">+</button>
                <button @click="disminuir(2)">-</button>
                <button @click="obtenerCursos">Obtener Cursos</button>
                <h1>numero {{numero}}</h1>
                <ul v-for="item of cursos">
                    <li>{{item.nombre}}</li>
                </ul>
            </div>
            `,
            computed:{
                ...Vuex.mapState(['numero''cursos'])
            },
            methods:{
                ...Vuex.mapMutations(['aumentar','disminuir']),
                ...Vuex.mapActions(['obtenerCursos'])
            }
        });

        const store = new Vuex.Store({
            state:{
                numero: 10,
                cursos: []
            },
            mutations:{
                aumentar(state){
                    //this.state.numero++
                    state.numero++
                },
                disminuir(staten){
                    state.numero -= n
                },
                llenarCursos(statecursosAccion){
                    state.cursos = cursosAccion
                }
            },
            actions:{
                obtenerCursos: async function({commit}){
                    const data = await fetch('cursos.json');
                    const cursos = await data.json();
                    commit('llenarCursos'cursos)
                }
            }
        });

        new Vue({
            el: '#app',
            // es lo mismo escribir un solo estore
            store: store
        })
    </script>
</body>
</html>
  • cursos.json:
[
    {"nombre":"HTML","id":1},
    {"nombre":"CSS","id":2},
    {"nombre":"JavaScript","id":3}
]

#14 Instalación VUE CLI 3 | Curso de Vue.js 😍 Desde Cero


Apuntes:

  • Ir a la página de Node.js e instalarlo.
  • Instalar el CLI de Vue.js ejecutando en terminal:
$ npm install -g @vue/cli
  • Ejecutar en terminal la siguiente línea:
$ vue --version
  • Con la acción anterior comprobamos que quedó bien instalado.
  • Para crear un nuevo proyecto en Vue CLI, escribimos en la línea de comando:
$ vue create proyecto-1
  • Con el cursor, seleccionamos la instalación manual.
  • Dejamos la configuración por defecto (Babel y Linter / Formater) y seleccionamos adicionalmente a Vuex.
  • Presionamos enter continuamente, cuando nos pregunte por 'Save this as a preset for future projects?', le decimos que no.
  • Ejecutamos:
$ cd poyecto-1
$ npm run serve (Ejecuta el servidor local)


#15 Vue CLI 3 UI (INTERFAZ GRÁFICA) Creando nuestro primer proyecto | Curso de Vue.js 😍 Desde Cero


Apuntes:

  • Ejecutar en terminal:
$ vue ui
  • El comando anterior crea una página web para crear lo que realizamos en la sección anterior sin la necesidad de utilizar líneas de comando (http://localhost:8000/project/select).
  • En la página web le damos al menú crear, y comenzamos a diseñar nuestro nuevo proyecto.
  • Para nuestro caso nos iremos por la opción manual y no seleccionaremos Linter / Formatter, pero si Vuex y Babel.
  • Desde la página creada se puede administrar nuestro proyecto.

Comentarios

Entradas más populares de este blog

Algunas páginas de cursos online recopiladas por Soluciones++

Ruta hacia el desarrollador web full stack en Soluciones++