Explicación en vídeo

Creación de proyecto

Para crear un proyecto Vue seguiremos los siguientes pasos (omitiendo los de instalar requisitos previos si ya los tenemos):

npm install -g @vue/cli


Una vez hecho esto, tenemos dos opciones, un script que sirve de arquetipo para aplicaciones FundewebJS, o la forma nativa.

Arquetipo FundewebJS

  1. En primer lugar, debemos descargar este archivo: crearProyectoFDWJS.rar. Descomprimimos la carpeta que contiene.
  2. Nos abrimos una terminal y nos situamos dentro de la carpeta que hemos extraído.
  3. Ejecutamos:

    crearProyecto.bat


  4. Nos pedirá que introduzcamos el nombre del proyecto, y el resto del proceso se ejecuta automáticamente.

Con esto, tendremos el proyecto creado en el mismo directorio que el script, tendremos que moverlo si queremos.

Forma nativa

Desde una terminal, nos situamos en el directorio en el que queramos generar el proyecto (nos podemos mover por los directorios con el comando cd) y ejecutamos el siguiente comando (el nombre que le demos al proyecto debe ser todo en minúsculas):

vue create nombreproyecto

A continuación, podremos elegir la configuración por defecto, o seleccionar los componentes y configuración manualmente. Si lo hacemos de forma manual, dispondremos de elementos como vuex o router, y se nos generarán directamente los archivos necesarios. También podremos guardar como presets las configuraciones manuales que hagamos, por si queremos reutilizarlas.

Una vez terminada la creación del proyecto, lo podremos abrir en VS Code desde File → Open Folder y seleccionando la carpeta generada.

Estructura de un proyecto Vue

La estructura que sigue un proyecto Vue es la siguiente:

node_modules/        Dependencias descargadas con npm
public/              Incluye el favicon y un html por si no se puede cargar la aplicación
src/
|-- components/      Componentes
|-- locales/         Internacionalización (i18n)
|-- router/          Navegación (vue router)
|-- services/        Llamadas a servicios REST
|-- store/           Estado global (vuex)
|-- views/           Vistas (componentes globales para las diferentes vistas)
|-- App.vue          Componente padre toda de la aplicación
\-- main.js          Inicialización de la aplicación
package.json         Información del proyecto y dependencias
vue.config.js        Configuración adicional de Vue

Como se indica en las descripciones, la aplicación se inicia en main.js, donde se crea la instancia de Vue. El componente inicial, el que será el padre de todos los componentes, será App.vue. En éste, generalmente tendremos las partes fijas de la aplicación, como el header, footer, o menú. Para el contenido de la página, con <router-view> se le indica que se cargue el componente (que será una vista, es decir, un componente del directorio Views) correspondiente a la ruta en la que nos encontremos. Las diferentes rutas tendremos que definirlas en src/router/index.js. Un ejemplo de App.vue podría ser este, que incluye el header del portal de servicios y el elemento <router-view>:

<template>
  <div id="app">
    <div style="height: 56px;">
      <fwjsHeader :title="$t('titulo')" :isLogged="true" style="z-index: 9"/>
    </div>
    <div id="contenido" style="margin-top: 15px">
      <router-view></router-view>
    </div>
  </div>
</template>

<script>
import fwjsHeader from "@aulavirtual/fwjs-components/fwjsHeader";

export default {
  components: {
    fwjsHeader,
  },
};
</script>