SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Vue JS 2
Equipe Front-end Engenharia de Software
● Marcelo Rodrigues Piva
● Felipe da Conceição
● Gabriel Antunes
● Gabriel Correia
O que é,
Como usar sem vue-cli,
Como usar com vue-cli,
Nossa experiência,
Pequeno projeto
O que é vuejs
O que é o Vue?
● Primeira release 2014
● Framework Progressivo ou Biblioteca Javascript;
○ Biblioteca: <script src="https://cdn.jsdelivr.net/npm/vue"></script>;
○ Framework: nodejs, npm, vue-cli;
● Componentes Reativos;
● Framework Ascendente:
○ https://hotframeworks.com/languages/javascript
VueJS, Angular e React
VueJS Angular React
Manutenção Comunidade Google Facebook
Native NativeScript-
vue
NativeScript React
Native
Gerenciamento
de Estado
Vuex Flux Redux
Guide
● Base da apresentação;
● Traduzida pela comunidade;
● Muito util;
● https://br.vuejs.org/v2/guide/index.html
Trabalhando
com vuejs
Sem vue-cli
Trabalhando sem vue-cli
● Uso mais simples do
Vue.js, onde ele é
inserido diretamente
na página através da
tag <script>.
Router
● Router é responsável por mostrar/esconder um ou mais
elementos dependendo da URL que se acessa no
browser.
Componentes
● Os componentes são um dos recursos mais poderosos do
Vue. Eles ajudam a estender os elementos HTML para
encapsular código de forma reusável. Em um alto nível,
componentes são elementos personalizados que o Vue
compila e anexa à sua instância.
Trabalhando com Vue
● Data e Renderização Declarativa;
○ https://jsfiddle.net/felipedacs/8h5khLwf/
● Diretiva v-bind;
○ https://jsfiddle.net/felipedacs/xer24hgL/
● Computed;
○ https://jsfiddle.net/felipedacs/xbgro6uk
● Diretiva v-model;
○ https://jsfiddle.net/felipedacs/o7sjvu7z
Trabalhando com Vue
● Diretiva v-on e Methods;
○ https://jsfiddle.net/felipedacs/pwkLat2r/
● Diretiva v-if;
○ https://jsfiddle.net/felipedacs/18s5sg1e/
● Diretiva v-for;
○ https://jsfiddle.net/felipedacs/t403ejet/
● Components;
○ https://jsfiddle.net/felipedacs/2u646h91/
Trabalhando com Vue
● Lifecycle hooks;
○ https://jsfiddle
.net/felipedac
s/f8notz21/
● Rotas;
○ https://jsfiddle
.net/felipedac
s/8mhysefa/
Usando vue-cli
Trabalhando
com vuejs
Webpack
● É um empacotador de código para projetos web, como o
browserify. Foca em módulos da sua aplicação. Tem a
ideia de code splitting, onde você modulariza partes
reaproveitáveis do seu projeto, facilitando o
desenvolvimento independente.
Iniciando com vue-cli
➔ vue init <template> <nome>
◆ webpack
◆ webpack-simple
➔ npm run dev
➔ npm run buid
Criando Rota, main.js
Criando Rota, routes.js
Criando Rota, App.vue
Cadastrando componente
CRIAR
COMPONENTE
COM ROTA SEM ROTA
PÁGINA
COMPONENTE
MENOR
C-ROTA/PAGINA
PÁGINA
COMPONENTE
MENOR
C-ROTA/MENOR S-ROTA/PAGINA S-ROTA/MENOR
X
C-ROTA/MENOR
● ComponenteQueImportara.vue:
○ import NomeComponent from './NomeComponent.vue'; // msm pasta
○ components: {'NomeComponent': NomeComponent}
Componente página
● Criar arquivos numa pasta chamada components, uma pasta por pagina e
component.vue
● Main.js:
○ import NomeComponent from './components/NomeComponent.vue'
○ Vue.component('tag-component', NomeComponent);
Componente da página
● ComponenteQueImportara.vue:
○ import NomeComponent from './NomeComponent.vue'; // msm pasta
○ components: {'NomeComponent': NomeComponent}
S-ROTA/MENOR
● ComponenteQueImportara.vue:
○ import NomeComponent from './NomeComponent.vue'; // msm pasta
○ components: {'NomeComponent': NomeComponent}
OU
● Main.js:
○ import NomeComponent from './components/NomeComponent.vue'
○ Vue.component('tag-component', NomeComponent);
Nossa
experiência
Usando vue-cli
Plano de telas,
Comunicação entre componentes,
Utilização do websocket
telas
Planejamento das telas
Telas
login jogo votação placar
X X
Telas
Html c/ rodapé
App.vue c/ dados
centralizados
Rota
Componente
Tela de login
login.vue
Tela de jogo
jogo.vue
jogadoresList.vue
letraBox.vue
formulario.vue
Tela de votos
votos.vue
resposta.vue
categoria.vue
Tela de placar
placar.vue
linha.vue
Comunicação entre
componentes
Desenhados todos componentes necessários, como é feita a comunicação
entre eles?
Telas
index.html
App.vue
Rota
Componente
index.html
App.vue
Rota
Componente
Comunicação do login
index.html
App.vue
Rota
login.vue
Comunicação do jogo
index.html
App.vue
Rota
jogo.vue
jogadoresList.vue letraBox.vue formulario.vue
# jogadores
# letra
# categorias
Comunicação dos votos
index.html
App.vue
Rota
votos.vue
linha.vue
Comunicação do placar
index.html
App.vue
Rota
placar.vue
Utilização do
WebSocket
Como enquadrar websocket? Como substituir a tecnologia se necessário?
Comunicação do login
index.html
App.vue
Rota
login.vue
Cria
jogador
*escuta WS*
*redireciona*
Comunicação do jogo
index.html
App.vue
Rota
jogo.vue
jogadoresList.vue letraBox.vue formulario.vue
# objWS
# jogadores
# letra
# categorias
Responde
(valor, categoria)
Responde
(arrayCategorias)
Comunicação dos votos
index.html
App.vue
Rota
votos.vue
Comunicação do placar
index.html
App.vue
Rota
placar.vue
“programinha”
Usando vue-cli
Proposta
● Criar portfolio simples com deploy para o github-pages
Criação do
projeto
Como iniciar?
➔ vue init webpack-simple
felipedacs2.github.io
➔ cd projeto
➔ npm run dev
Configurar vue
Mas afinal, why?
● Remover dist do .gitignore
Criação das
rotas
Como criar as rotas?
● vuerouter.txt
Criação dos
assets
Onde guardar arquivos estáticos,
como: css, imgs, fonts e etc
● src/assets/img/img
Criação dos
componentes
Onde importar e como guardar
componentes por padrão?
● projeto.vue:
○ import links from './links.vue';
○ components: {links: links}
● Lets code
Repo no github
Como criar um repo no github?
● Criar repo
● Configurar git remoto
Deploy no
github-pages
Como criar um repo remoto e
usar o git para commits e pushs?
➔ npm run build
➔ git add .
➔ git commit -m “first commit”
➔ git push origin master
● Liberar github-pages
Sugestões para estudo inicial
1. Guide;
2. Udemy;
3. Youtube;
That’s All
Para quem vue e quiser os slides, só pedir;
JSFiddle permanecerá, e também pode ser forkado;
Perguntas?

Mais conteúdo relacionado

Mais procurados

Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overviewdtelaroli
 
Automação de build para frontend
Automação de build para frontendAutomação de build para frontend
Automação de build para frontendVanessa Me Tonini
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLIVanessa Me Tonini
 
VueJS - Uma alternativa elegante
VueJS - Uma alternativa eleganteVueJS - Uma alternativa elegante
VueJS - Uma alternativa eleganteJonathan Bijos
 
Desenvolvendo com Angular CLI
Desenvolvendo com Angular CLIDesenvolvendo com Angular CLI
Desenvolvendo com Angular CLIVanessa Me Tonini
 
Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.jsJoel Rodrigues
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAWilson Mendes
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Grails: O Java em Alta Produtividade
Grails: O Java em Alta ProdutividadeGrails: O Java em Alta Produtividade
Grails: O Java em Alta ProdutividadeCleórbete Santos
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018André Luiz Forchesatto
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros PassosRomualdo Andre
 
Começando com Vue.js
Começando com Vue.jsComeçando com Vue.js
Começando com Vue.jsmarcusbalbi
 

Mais procurados (20)

Angular js
Angular jsAngular js
Angular js
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overview
 
Automação de build para frontend
Automação de build para frontendAutomação de build para frontend
Automação de build para frontend
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
 
VueJS - Uma alternativa elegante
VueJS - Uma alternativa eleganteVueJS - Uma alternativa elegante
VueJS - Uma alternativa elegante
 
Aula16 - Jquery
Aula16 - JqueryAula16 - Jquery
Aula16 - Jquery
 
Apresentação JQuery
Apresentação JQueryApresentação JQuery
Apresentação JQuery
 
Desenvolvendo com Angular CLI
Desenvolvendo com Angular CLIDesenvolvendo com Angular CLI
Desenvolvendo com Angular CLI
 
Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.js
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Protractor
ProtractorProtractor
Protractor
 
Grails: O Java em Alta Produtividade
Grails: O Java em Alta ProdutividadeGrails: O Java em Alta Produtividade
Grails: O Java em Alta Produtividade
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros Passos
 
script.aculo.us
script.aculo.usscript.aculo.us
script.aculo.us
 
Gwt
GwtGwt
Gwt
 
Começando com Vue.js
Começando com Vue.jsComeçando com Vue.js
Começando com Vue.js
 

Semelhante a Vuejs

Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2Cezar Souza
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaWandesson Soares
 
Walker - Criando componentes interoperaveis com Vue.js para o WordPress
Walker - Criando componentes interoperaveis com Vue.js para o WordPressWalker - Criando componentes interoperaveis com Vue.js para o WordPress
Walker - Criando componentes interoperaveis com Vue.js para o WordPressWordPress Floripa
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticasRicardo Monteiro
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3Claudinei Brito Junior
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Code splitting no react
Code splitting no reactCode splitting no react
Code splitting no reactGeorgiaAntunes
 
Desenvolvimento de aplicações mobile com bootstrap, cordova e vue.js
Desenvolvimento de aplicações mobile com bootstrap, cordova e vue.jsDesenvolvimento de aplicações mobile com bootstrap, cordova e vue.js
Desenvolvimento de aplicações mobile com bootstrap, cordova e vue.jsGustavo Castro
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlManuel Lemos
 
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlDiego Tremper
 

Semelhante a Vuejs (20)

Spa com Vue.js
Spa com Vue.jsSpa com Vue.js
Spa com Vue.js
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
 
Walker - Criando componentes interoperaveis com Vue.js para o WordPress
Walker - Criando componentes interoperaveis com Vue.js para o WordPressWalker - Criando componentes interoperaveis com Vue.js para o WordPress
Walker - Criando componentes interoperaveis com Vue.js para o WordPress
 
Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticas
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Grunt
GruntGrunt
Grunt
 
WordPress + Ionic
WordPress + IonicWordPress + Ionic
WordPress + Ionic
 
Interfaces ricas JSF
Interfaces ricas JSF Interfaces ricas JSF
Interfaces ricas JSF
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
Conhecendo vuejs
Conhecendo vuejsConhecendo vuejs
Conhecendo vuejs
 
Code splitting no react
Code splitting no reactCode splitting no react
Code splitting no react
 
Desenvolvimento de aplicações mobile com bootstrap, cordova e vue.js
Desenvolvimento de aplicações mobile com bootstrap, cordova e vue.jsDesenvolvimento de aplicações mobile com bootstrap, cordova e vue.js
Desenvolvimento de aplicações mobile com bootstrap, cordova e vue.js
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
 

Vuejs