SlideShare a Scribd company logo
1 of 24
Download to read offline
Vue.js
O poder das Render Functions
render: h => h(App)
Vinicius Reis
@vinicius73@LuizVinicius73
Gravo aulas sobre Vue.js, JavaScript e Laravel para codecasts.com.br
Engenheiro de Aplicações @ Decision6
Vue.js, um framework progressivo
Vue.js, um framework progressivo
Nascido no final de 2013, Vue.js é classificado
como um Framework Progressivo para a
criação de interfaces baseadas em
componentes.
Com Vue.js construímos aplicações altamente
escaláveis independente do tipo e nível do
projeto.
Vue.js, um framework progressivo
Progressivo pois ele não é monolítico, seu core
é pequeno e especializado. Em seu
guarda-chuva estão pacotes e projetos para
ajudar ajudar o desenvolvedor e seu projeto.
- Vue CLI
- Vue Router
- Vuex
- Vue Test Utils
- Vários outros em
https://github.com/vuejs
Vue.js, um framework progressivo
A cereja do bolo são os Single File Components (SFC)
São arquivos com extensão .vue onde
são declarados
- Template (Visual)
- JavaScript (Comportamento)
- CSS (Estilo)
Neles é possível usar Babel,
TypeScript, PUG, Sass, Stylus, JSX e
inúmeras outras possibilidades de
pré-processamento.
PUG/Jade Render Function JSX
Virtual-DOM
Virtual-DOM
A sintaxe de template do Vue.js é
(pré-)processada gerando código JavaScript.
Ele gera a função render e devolve um objeto
JavaScript. Este objeto é o V-DOM, que é
analisado para determinar como e quando os
nós reais de DOM vão ser atualizados.
Declarativo X Imperativo
Declarativo
Declarativo descreve como algo é, não como
ele faz para ser.
É uma forma extremamente amigável para a
criação de interfaces, html ou não.
Ao utilizar template, nosso código
automaticamente recebe tratamento contra
XSS.
Imperativo
Descreve como algo será construído, passo a
passo.
Esta abordagem apesar de ser mais complexa
em alguns aspectos, é mais poderosa e flexível,
pois não se limita a uma sintaxe paralela.
Ao usar essa abordagem, você possa a ter
controle refinado sobre a estrutura e
comportamento do componente.
Existem situações onde usar Render
Functions é a melhor opção
Componentes Funcionais
Componentes funcionais
Vue.js permite criar componentes especiais,
conhecidos como componentes funcionais.
Eles são componentes que não possuem
instância, logo não ocupam memória após
serem criados.
São extremamente úteis para o
encapsulamento de decisão ou grandes
porções de código que não possuem uma
grande regra de negócio, porém seu uso não se
limita a isso.
Componentes funcionais
Criação de elementos ricos e extremamente
reutilizáveis.
O lado negativo é não ter acesso a esses
componentes pelo vue-dev-tools, afinal eles
não possuem instância.
Componentes funcionais
Criação de regras mais elaboradas
que filtros ou diretivas.
Pense em uma porção de elemento
ou regra de negócio que possa ser
centralizada e será fácil criar
componentes funcionais.
Componentes funcionais
Outro uso prático é simplificar a declaração de
outros componentes, como um QSelect do Quasar.
As opções aqui são estáticas, não há motivação para
manter uma instância para este componente.
No vue-dev-tools ficará visível apenas QSelect.
Composição com Render Function
Composição com Render Function
Vue.js permite várias formas de composição e o
JavaScript também.
É possível criar uma função que retorna um
componente válido, mudando apenas o que
desejamos mudar.
Neste exemplo recebemos um componente,
seu nome e algumas opções extras.
Composição com Render Function
Sobrescrever props padrão, e
gerar componentes menores e
mais assertivos é muito fácil.
Também é possível criar funções
render customizadas, para
receber mais argumentos.
Obrigado
Referências
- https://vuejs.org/v2/guide/render-function.html
- https://blog.codecasts.com.br/por-que-vue-js-e-nao-react-d5b58c09d193
- https://blog.codecasts.com.br/heranca-e-composicao-com-vue-js-c74177f37e36
- https://alligator.io/vuejs/introduction-render-functions/
- https://vuejs-brasil.com.br/render-functions-no-vue-js-2-0/
- https://www.youtube.com/watch?v=KS4eizPXRCQ

More Related Content

What's hot

So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012
Bill Lima
 

What's hot (20)

DPDK
DPDKDPDK
DPDK
 
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC ClustersSR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
SR-IOV: The Key Enabling Technology for Fully Virtualized HPC Clusters
 
LCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
LCA14: LCA14-306: CPUidle & CPUfreq integration with schedulerLCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
LCA14: LCA14-306: CPUidle & CPUfreq integration with scheduler
 
Fugaku, the Successes and the Lessons Learned
Fugaku, the Successes and the Lessons LearnedFugaku, the Successes and the Lessons Learned
Fugaku, the Successes and the Lessons Learned
 
js.pdf
js.pdfjs.pdf
js.pdf
 
Lisa 2015-gluster fs-hands-on
Lisa 2015-gluster fs-hands-onLisa 2015-gluster fs-hands-on
Lisa 2015-gluster fs-hands-on
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
Comparison between OCFS2 and GFS2
Comparison between OCFS2 and GFS2Comparison between OCFS2 and GFS2
Comparison between OCFS2 and GFS2
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zun
 
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionLinux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
 
Continguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux KernelContinguous Memory Allocator in the Linux Kernel
Continguous Memory Allocator in the Linux Kernel
 
DWARF Data Representation
DWARF Data RepresentationDWARF Data Representation
DWARF Data Representation
 
Linux on RISC-V with Open Source Hardware (Open Source Summit Japan 2020)
Linux on RISC-V with Open Source Hardware (Open Source Summit Japan 2020)Linux on RISC-V with Open Source Hardware (Open Source Summit Japan 2020)
Linux on RISC-V with Open Source Hardware (Open Source Summit Japan 2020)
 
Switchdev - No More SDK
Switchdev - No More SDKSwitchdev - No More SDK
Switchdev - No More SDK
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Resumo assembly x86 16 bits
Resumo assembly x86 16 bitsResumo assembly x86 16 bits
Resumo assembly x86 16 bits
 
So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012So gabarito exerciciosescalonamentocpu-2012
So gabarito exerciciosescalonamentocpu-2012
 
Jenkins
JenkinsJenkins
Jenkins
 
Prerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrencyPrerequisite knowledge for shared memory concurrency
Prerequisite knowledge for shared memory concurrency
 
SnapDiff
SnapDiffSnapDiff
SnapDiff
 

Similar to Vue.js o poder das render functions

Framework Entities na CBSoft
Framework Entities na CBSoftFramework Entities na CBSoft
Framework Entities na CBSoft
Marcius Brandão
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Adriano Teixeira de Souza
 

Similar to Vue.js o poder das render functions (20)

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
 
Introdução ao VUE JS
Introdução ao VUE JSIntrodução ao VUE JS
Introdução ao VUE JS
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
O básico sobre Vue 2. Talk Vue Básico 1/3
O básico sobre Vue 2. Talk Vue Básico 1/3O básico sobre Vue 2. Talk Vue Básico 1/3
O básico sobre Vue 2. Talk Vue Básico 1/3
 
Vue.js - o framework progressivo
Vue.js - o framework progressivoVue.js - o framework progressivo
Vue.js - o framework progressivo
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
 
Vue - Básico sobre Vue [1 de 2 - 2020]
Vue - Básico sobre Vue [1 de 2 - 2020]Vue - Básico sobre Vue [1 de 2 - 2020]
Vue - Básico sobre Vue [1 de 2 - 2020]
 
Framework Entities na CBSoft
Framework Entities na CBSoftFramework Entities na CBSoft
Framework Entities na CBSoft
 
Componentes UI5 - SAP Inside Track Joinville 2015 - Fábio Pagoti
Componentes UI5 - SAP Inside Track Joinville 2015 - Fábio PagotiComponentes UI5 - SAP Inside Track Joinville 2015 - Fábio Pagoti
Componentes UI5 - SAP Inside Track Joinville 2015 - Fábio Pagoti
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Vue.js - Framwork Progressivo
Vue.js - Framwork ProgressivoVue.js - Framwork Progressivo
Vue.js - Framwork Progressivo
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEI
 
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosLightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticos
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 

Vue.js o poder das render functions

  • 1. Vue.js O poder das Render Functions render: h => h(App)
  • 2. Vinicius Reis @vinicius73@LuizVinicius73 Gravo aulas sobre Vue.js, JavaScript e Laravel para codecasts.com.br Engenheiro de Aplicações @ Decision6
  • 3. Vue.js, um framework progressivo
  • 4. Vue.js, um framework progressivo Nascido no final de 2013, Vue.js é classificado como um Framework Progressivo para a criação de interfaces baseadas em componentes. Com Vue.js construímos aplicações altamente escaláveis independente do tipo e nível do projeto.
  • 5. Vue.js, um framework progressivo Progressivo pois ele não é monolítico, seu core é pequeno e especializado. Em seu guarda-chuva estão pacotes e projetos para ajudar ajudar o desenvolvedor e seu projeto. - Vue CLI - Vue Router - Vuex - Vue Test Utils - Vários outros em https://github.com/vuejs
  • 6. Vue.js, um framework progressivo A cereja do bolo são os Single File Components (SFC) São arquivos com extensão .vue onde são declarados - Template (Visual) - JavaScript (Comportamento) - CSS (Estilo) Neles é possível usar Babel, TypeScript, PUG, Sass, Stylus, JSX e inúmeras outras possibilidades de pré-processamento.
  • 9. Virtual-DOM A sintaxe de template do Vue.js é (pré-)processada gerando código JavaScript. Ele gera a função render e devolve um objeto JavaScript. Este objeto é o V-DOM, que é analisado para determinar como e quando os nós reais de DOM vão ser atualizados.
  • 11. Declarativo Declarativo descreve como algo é, não como ele faz para ser. É uma forma extremamente amigável para a criação de interfaces, html ou não. Ao utilizar template, nosso código automaticamente recebe tratamento contra XSS.
  • 12. Imperativo Descreve como algo será construído, passo a passo. Esta abordagem apesar de ser mais complexa em alguns aspectos, é mais poderosa e flexível, pois não se limita a uma sintaxe paralela. Ao usar essa abordagem, você possa a ter controle refinado sobre a estrutura e comportamento do componente.
  • 13. Existem situações onde usar Render Functions é a melhor opção
  • 15. Componentes funcionais Vue.js permite criar componentes especiais, conhecidos como componentes funcionais. Eles são componentes que não possuem instância, logo não ocupam memória após serem criados. São extremamente úteis para o encapsulamento de decisão ou grandes porções de código que não possuem uma grande regra de negócio, porém seu uso não se limita a isso.
  • 16. Componentes funcionais Criação de elementos ricos e extremamente reutilizáveis. O lado negativo é não ter acesso a esses componentes pelo vue-dev-tools, afinal eles não possuem instância.
  • 17. Componentes funcionais Criação de regras mais elaboradas que filtros ou diretivas. Pense em uma porção de elemento ou regra de negócio que possa ser centralizada e será fácil criar componentes funcionais.
  • 18. Componentes funcionais Outro uso prático é simplificar a declaração de outros componentes, como um QSelect do Quasar. As opções aqui são estáticas, não há motivação para manter uma instância para este componente. No vue-dev-tools ficará visível apenas QSelect.
  • 20. Composição com Render Function Vue.js permite várias formas de composição e o JavaScript também. É possível criar uma função que retorna um componente válido, mudando apenas o que desejamos mudar. Neste exemplo recebemos um componente, seu nome e algumas opções extras.
  • 21.
  • 22. Composição com Render Function Sobrescrever props padrão, e gerar componentes menores e mais assertivos é muito fácil. Também é possível criar funções render customizadas, para receber mais argumentos.
  • 24. Referências - https://vuejs.org/v2/guide/render-function.html - https://blog.codecasts.com.br/por-que-vue-js-e-nao-react-d5b58c09d193 - https://blog.codecasts.com.br/heranca-e-composicao-com-vue-js-c74177f37e36 - https://alligator.io/vuejs/introduction-render-functions/ - https://vuejs-brasil.com.br/render-functions-no-vue-js-2-0/ - https://www.youtube.com/watch?v=KS4eizPXRCQ