SlideShare uma empresa Scribd logo
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.
Vue.js  o poder das render functions
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

Mais conteúdo relacionado

PDF
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
PDF
Git-flow workflow and pull-requests
PDF
Git Branching Model
PDF
Performant Streaming in Production: Preventing Common Pitfalls when Productio...
PDF
Not Just UNIQUE: Exclusion Constraints
PDF
Inside GitHub with Chris Wanstrath
PDF
AWS에서 SAP 운영하기 – 한국 고객의 모범 사례 집중 분석 - (조영준 상무 / 김진호 선임부장, BSG Partners)
PPTX
Git branching strategies
[APIdays INTERFACE 2021] The Evolution of API Security for Client-side Applic...
Git-flow workflow and pull-requests
Git Branching Model
Performant Streaming in Production: Preventing Common Pitfalls when Productio...
Not Just UNIQUE: Exclusion Constraints
Inside GitHub with Chris Wanstrath
AWS에서 SAP 운영하기 – 한국 고객의 모범 사례 집중 분석 - (조영준 상무 / 김진호 선임부장, BSG Partners)
Git branching strategies

Mais procurados (20)

PPTX
MongoDB - NoSQL Overview
PDF
Iceberg: a fast table format for S3
PDF
Git Branching Model
PPTX
MongoDB on EC2 and EBS
PDF
Data persistency (draco, cygnus, sth comet, quantum leap)
PDF
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
PPTX
PDF
[AWS Builders] Effective AWS Glue
PDF
Spring Cloud Workshop
PPTX
Cucumber Tool
PPTX
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
PPTX
Spring vs java ee
PDF
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
PPTX
Drools rule Concepts
PDF
[245] presto 내부구조 파헤치기
PDF
MySQL High Availability -- InnoDB Clusters
PPTX
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
PDF
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
PDF
TDD and BDD and ATDD
MongoDB - NoSQL Overview
Iceberg: a fast table format for S3
Git Branching Model
MongoDB on EC2 and EBS
Data persistency (draco, cygnus, sth comet, quantum leap)
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
[AWS Builders] Effective AWS Glue
Spring Cloud Workshop
Cucumber Tool
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
Spring vs java ee
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
Drools rule Concepts
[245] presto 내부구조 파헤치기
MySQL High Availability -- InnoDB Clusters
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
TDD and BDD and ATDD
Anúncio

Semelhante a Vue.js o poder das render functions (20)

PDF
Vue.js - o framework progressivo
PPTX
Vue.js - Framwork Progressivo
PDF
Vuejs
PPTX
Vue - Básico sobre Vue [1 de 2 - 2020]
PDF
O básico sobre Vue 2. Talk Vue Básico 1/3
PDF
Conhecendo vuejs
PPTX
Introdução ao VUE JS
PDF
vuejs.pdf
PDF
Hello vue
PPTX
PPTX
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
PDF
Angular, React ou Vue? Comparando os favoritos do JS reativo
ODP
Começando com Vue.js
PPTX
Introdução Vue JS
PDF
Day to day vue or react (2)
PDF
Hello ReactJs
PPTX
Primeiros passos no Vue.js
PPTX
VueJS - Uma alternativa elegante
PDF
Desenvolvimento Client-Side 2016 (BrazilJS)
Vue.js - o framework progressivo
Vue.js - Framwork Progressivo
Vuejs
Vue - Básico sobre Vue [1 de 2 - 2020]
O básico sobre Vue 2. Talk Vue Básico 1/3
Conhecendo vuejs
Introdução ao VUE JS
vuejs.pdf
Hello vue
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Angular, React ou Vue? Comparando os favoritos do JS reativo
Começando com Vue.js
Introdução Vue JS
Day to day vue or react (2)
Hello ReactJs
Primeiros passos no Vue.js
VueJS - Uma alternativa elegante
Desenvolvimento Client-Side 2016 (BrazilJS)
Anúncio

Último (7)

PPTX
Curso de Windows 11 resumido na prática.pptx
PDF
Dos requisitos ao código: como criar código rastreável em PHP
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
apresentacao introducao computacao ead.pdf
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
Evolução em código: algoritmos genéticos com PHP
Curso de Windows 11 resumido na prática.pptx
Dos requisitos ao código: como criar código rastreável em PHP
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
apresentacao introducao computacao ead.pdf
Mapeamento de Objeto para Tabela Relacional
Evolução em código: algoritmos genéticos com PHP

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.
  • 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