Conheça Quasar: framework Vue.js

Neste artigo iremos aprender sobre o Quasar, uma poderosa ferramenta baseada em Vue.js que nos permite criar aplicações híbridas (web, mobile, desktop, PWA) com apenas um código e sem precisar de bibliotecas pesadas para isso.

O Quasar é um framework Vue.js e sem dúvidas é uma das melhores soluções para criar aplicações. Com ele podemos construir aplicações incríveis e leves. Ele possui suporte para navegadores, dispositivos móveis, e aplicativos desktops, uma ótima documentação, com vários exemplos, é muito fácil de aprender, fácil personalização de seus componentes e o mais importante, é baseado em Vue.js.

Instalação e configuração

Para instalar o Quasar podemos usar o npm ou Yarn, como pode ser visto nos Códigos 1 e 2.

npm install -g @quasar/cli
Código 1. Utilizando o npm para instalar o Quasar
yarn global add @quasar/cli
Código 2. Utilizando o Yarn para instalar o Quasar

Após a instalação, vamos rodar o comando do Código 3 para criar um projeto Quasar.

quasar create <nome_do_projeto>
Código 3. Criando um projeto Vue.js utilizando o Quasar

Ao rodar o comando, ele nos fará algumas perguntas como pode ser visto na Figura 1.

Figura 1. Perguntas feitas quando criamos um novo projeto

Após responder as perguntas começará a fazer o download do projeto. Esse comando cria uma aplicação com uma estrutura de pastas bem parecida com um projeto Vue.js (componentes, views) e o vue-router instalado e configurado.

Veja na Figura 2 a estrutura padrão das pastas criadas pelo Quasar.

Figura 2. Estrutura inicial criada pelo Quasar

Finalizado o download, entre na pasta que foi criado o projeto e rode o comando do Código 4.

quasar dev
Código 4. Executando a aplicação

Esse comando fará o build da nossa aplicação na porta http://localhost:8080. Veja na Figura 3 a aplicação criada sendo executada no navegador.

Figura 3. Aplicação sendo executada no navegador

Utilizando o Quasar

O Quasar tem uma gama de componentes Vue.js prontos para serem usados e configurados através de props, slots e eventos.

Veremos alguns exemplos de como utilizá-los. Neste primeiro exemplo, vamos utilizar uma tabela como pode ser visto na Figura 4.

Figura 4. Exemplo de uma tabela criada utilizando o Quasar

Para replicar o exemplo da tabela, limpe o arquivo index.vue e insira o Código 5.

<template> <div class="q-pa-md"> <q-table title="Usuários" :rows="rows" :columns="columns" row-key="nome" /> </div> </template> <script> import { defineComponent } from "vue"; export default defineComponent({ name: "Usuários", data() { return { rows: [ { nome: "Luiz Medeiros", email: "luiz@email.com", telefone: 999999999, funcao: "Programador", }, { nome: "Rebeca Maria", email: "rebeca@email.com", telefone: 2222222222, funcao: "Web Designer", }, { nome: "Lucas Santos", email: "lucas@email.com", telefone: 3333333333, funcao: "Programador Android", }, ], columns: [ { name: "nome", align: "left", label: "Nome", field: "nome", sortable: true, }, { name: "email", align: "left", label: "E-mail", field: "email", sortable: true, }, { name: "telefone", align: "left", label: "Telefone", field: "telefone", sortable: true, }, { name: "funcao", align: "left", label: "Função", field: "funcao", sortable: true, }, ], }; }, }); </script>
Código 5. Exemplo de código que exibe uma tabela utilizando o Quasar

Entenda como o código foi criado: na linha 3 chamamos o componente q-table, que é o componente do Quasar para renderizar uma tabela. Nele passamos algumas props, como rows (linhas da tabela), columns (o cabeçalho da tabela), title para mostrar um título no componente (essa props não é obrigatória), e por fim o row-key com o nome. A propriedade row-key deve ser única.

Estrutura das colunas

A estrutura da props columns, que no caso são os cabeçalhos da nossa tabela, tem que ser um array de objetos, onde cada objeto representa uma coluna. A estrutura desse objeto é a seguinte:

Existem outras configurações para as columns, como required, style, classes e format. Vale a pena conferir na documentação.

Quasar Plugins

Outro recurso legal do Quasar são os seus plugins, que são instalados no projeto sem precisar executar um comando no terminal. Veja alguns exemplos de plugins disponíveis:

Vamos usar como exemplo o plugin Notify, que é útil para alertar sobre um evento. Primeiro precisamos instalá-lo e para isso vá até o arquivo quasar.conf.js na raiz do projeto e procure pelo array plugins. Registre o nome do plugin dentro dele como mostra o Código 6.

… plugins: [ 'Notify' ] ...
Código 6. Inserindo o nome do plugin (Notify) no array plugins

Pronto, o plugin Notify já está instalado sem precisar rodar um comando no npm ou Yarn para isso. Para usá-lo vá até o componente que deseja usar e faça a importação do plugin, como mostra o Código 7.

import { Notify } from 'quasar'
Código 7. Importando o Notify

Para mostrar a notificação basta utilizar o método exibido no Código 8.

Notify.create('Operação Realizada com Sucesso!')
Código 8. Utilizando o Notify

Veja no Código 9 um exemplo completo de como utilizar o plugin em um componente.

<template> <div class="q-pa-md"> <q-btn color="purple" @click="showNotify" label="Show Notification" /> </div> </template> <script> import { Notify } from 'quasar' import { defineComponent } from 'vue' export default defineComponent({ name: 'Plugin', data(){ return { } }, methods: { showNotify(){ Notify.create('Operação Realizada com Sucesso!') } } }) </script>
Código 9. Exemplo de um componente que utiliza o plugin Notify

A seguir vamos entender o que cada linha está fazendo:

Linha 3: inserimos um botão (componente q-btn do Quasar), que ao ser clicado chama o método showNotify;
Linha 8: importamos o plugin Notify;
Linha 19: criamos o método showNotify, que será chamado pelo botão (q-btn);
Linha 20: chamamos o plugin Notify.create e passamos para ele a mensagem que queremos exibir.

Ao clicar no botão a mensagem vai aparecer na tela como pode ser visto na Figura 5.

Figura 5. Mensagem sendo exibida no navegador

Podemos também passar algumas configurações para o plugin, como por exemplo, alterar a cor da notificação como mostra o Código 10.

Notify.create({ type: "info", message: "Operação Realizada com sucesso", });
Código 10. Alterando a cor da notificação

Ou até mesmo, a posição da notificação na tela, como mostra o Código 11.

Notify.create({ position: 'top-right', type: "info", message: "Operação Realizada com sucesso", });
Código 11. Alterando a posição da notificação na tela

Veja exemplos de outras configurações disponíveis para o plugin notify:

Você pode consultar mais configurações e exemplos na documentação do Quasar.

Builds no Quasar

Como mencionado antes, o Quasar tem suporte para várias plataformas, e tem dois tipos de builds para cada uma delas (desenvolvimento e produção) e tudo é feito pela linha comando.

Veja os comandos usados para builds em desenvolvimento:

Para criar aplicações para produção são os mesmos comandos, só que substituímos a palavra dev por build, exemplo: quasar build, que cria uma aplicação SPA pronta para produção.

Conclusão

O Quasar é a solução número 1 para projetos Vue.js, pois possui uma gama de componentes e suporte a várias aplicações. Podemos construir PWA, SSR, aplicativos para Android e iOS com o mesmo código e tudo através do seu CLI, com uma linha comando. Além disso, possui uma comunidade bastante ativa e também uma documentação muito bem escrita, valendo a pena dar uma conferida.

Confira também

Artigos relacionados