{"id":963,"date":"2018-01-10T14:30:21","date_gmt":"2018-01-10T14:30:21","guid":{"rendered":"http:\/\/www.andrefelizardo.com.br\/blog\/?p=963"},"modified":"2018-01-10T14:39:38","modified_gmt":"2018-01-10T14:39:38","slug":"o-que-e-vue-js","status":"publish","type":"post","link":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/","title":{"rendered":"O que \u00e9 Vue.js"},"content":{"rendered":"<p><a name=\"o-que-e\"><\/a>Vue.js \u00e9 uma biblioteca\u00a0<strong>JavaScript\u00a0<\/strong>acess\u00edvel, vers\u00e1til e perform\u00e1tica. E apesar do site oficial dizer que Vue.js \u00e9 um framework JavaScript Progressivo, eu j\u00e1 vou come\u00e7ar discordando \ud83d\ude42<\/p>\n<p>Entendemos por framework, aquela solu\u00e7\u00e3o &#8216;fechada&#8217; quando voc\u00ea j\u00e1 tem definido por exemplo a estrutura de <!--more-->diret\u00f3rios, ou a forma como voc\u00ea faz uma requisi\u00e7\u00e3o AJAX.<\/p>\n<p>J\u00e1 uma biblioteca \u00e9 um pequeno arquivo (geralmente) com alguns facilitadores, mas para voc\u00ea construir um projeto robusto, sempre vai precisar de outras bibliotecas, pra executar outras fun\u00e7\u00f5es.<\/p>\n<p>Quer exemplos? Frameworks, podemos falar do <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/\" target=\"_blank\" rel=\"noopener\">AngularJS<\/a>, <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/angular-2-nao-continuacao-do-angular-1\/\" target=\"_blank\" rel=\"noopener\">Angular<\/a> ou <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-ember-js\/\" target=\"_blank\" rel=\"noopener\">Ember.js<\/a>. J\u00e1 quando falamos de libs, podemos falar do <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/react-js-o-que-e-introducao-ao-react\/\" target=\"_blank\" rel=\"noopener\">React<\/a>\u00a0ou do pr\u00f3prio Vue.js.<\/p>\n<p>Por\u00e9m, vou te explicar mais abaixo porque ele pode se considerar um framework progressivo.<\/p>\n<ul>\n<li><a href=\"#o-que-e\">O que \u00e9 Vue.js?<\/a><\/li>\n<li><a href=\"#historia\">Hist\u00f3ria do Vue.js<\/a><\/li>\n<li><a href=\"#vantagens\">Vantagens<\/a><\/li>\n<li><a href=\"#exercicio\">Hello World &#8211; Aplica\u00e7\u00e3o Pr\u00e1tica<\/a><\/li>\n<\/ul>\n<h1><a name=\"historia\"><\/a>Hist\u00f3ria do\u00a0Vue.js<\/h1>\n<p>Foi criado por Evan You enquanto ele trabalhava no Google. Depois de trabalhar com <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/\" target=\"_blank\" rel=\"noopener\">AngularJS<\/a>\u00a0(a primeira vers\u00e3o do Angular) em v\u00e1rios projetos dentro do Google ele decidiu pegar os conceitos do que ele mais gostava do Angular, e criar uma vers\u00e3o mais leve e sem muita coisa extra que o Angular tinha.<\/p>\n<p>Oficialmente a biblioteca foi lan\u00e7ada em 2014, ou seja, o AngularJS j\u00e1 estava est\u00e1vel, e n\u00f3s j\u00e1 conhec\u00edamos os seus problemas, o Angular 2 estava por vir e ningu\u00e9m tinha muita certeza de como ele seria, eu diria que foi no timing certo.<\/p>\n<p>Muitos inclusive dizem que Vue.js \u00e9 o que o Angular 2 deveria ter sido.<\/p>\n<div style=\"width: 100%; height: 0px; padding-bottom: 78%; position: relative; text-align: left;\"><iframe class=\"giphy-embed lazyload\" style=\"position: absolute;\" data-src=\"https:\/\/giphy.com\/embed\/WuGSL4LFUMQU\" width=\"100%\" height=\"100%\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-load-mode=\"1\"><\/iframe><\/div>\n<h1><a name=\"vantagens\"><\/a>Vantagens<\/h1>\n<ul>\n<li>\u00c9 Open Source;<\/li>\n<li>Mantido pela comunidade;<\/li>\n<\/ul>\n<p>E porque ser mantido pela comunidade \u00e9 bom? Pois ele n\u00e3o segue os interesses comerciais de nenhuma empresa, ele realmente tenta sempre atender da melhor forma os problemas di\u00e1rios dos desenvolvedores front-end.<\/p>\n<ul>\n<li>Curva de aprendizagem pequena<\/li>\n<\/ul>\n<p>Voc\u00ea n\u00e3o precisa aprender Typescript, ou JSX. \u00c9 HTML, CSS e <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/javascript-comecando-do-jeito-certo\/\" target=\"_blank\" rel=\"noopener\">JavaScript Vanilla<\/a>.<\/p>\n<ul>\n<li>Flexibilidade<\/li>\n<\/ul>\n<p>\u00c9 realmente simples, voc\u00ea pode us\u00e1-lo com Typescript, se quiser, plugar outras libs e\u00a0 v\u00e1rias outras possibilidades. Voc\u00ea trabalha da forma como preferir, e sem muito trabalho de configura\u00e7\u00e3o pra isso.<\/p>\n<ul>\n<li>Framework JavaScript Progressivo<\/li>\n<\/ul>\n<p>Lembra l\u00e1 no in\u00edcio do texto que discordei dessa afirma\u00e7\u00e3o? Pois \u00e9, mas ela \u00e9 verdade, por\u00e9m, depende da forma como voc\u00ea usa o Vue.js. Ele pode ser considerado um framework, porque diferente do React ele tem bibliotecas oficiais. Essas bibliotecas &#8211; que s\u00e3o tr\u00eas das mais usadas em todas as aplica\u00e7\u00f5es\u00a0Vue.js &#8211; s\u00e3o mantidas pelas mesmas pessoas que fazem o core da biblioteca. Ent\u00e3o, se em um projeto, voc\u00ea usar essas libs (em projetos complexos \u00e9 muito prov\u00e1vel que use) voc\u00ea estar\u00e1 usando o Framework Vue.js<\/p>\n<p>Essas outras bibliotecas s\u00e3o o <a href=\"https:\/\/router.vuejs.org\/en\/\" target=\"_blank\" rel=\"noopener\">Vue Router<\/a>\u00a0(toda aplica\u00e7\u00e3o robusta ter\u00e1 um router), <a href=\"https:\/\/vuex.vuejs.org\/en\/intro.html\" target=\"_blank\" rel=\"noopener\">Vuex<\/a> que pra quem est\u00e1 acostumado com React, \u00e9 uma lib similar ao Redux e ainda <a href=\"https:\/\/ssr.vuejs.org\/en\/\" target=\"_blank\" rel=\"noopener\">Vue Server Rendered<\/a>\u00a0que como o nome j\u00e1 pressup\u00f5e \u00e9 uma lib para fazer Server Side Rendering (se voc\u00ea n\u00e3o entende muito sobre esse assunto, eu resumo pra voc\u00ea que \u00e9 uma forma de melhorar o <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-evitar-na-seo\/\" target=\"_blank\" rel=\"noopener\">SEO<\/a> nas SPAs, melhorar a performance do carregamento das SPAs e outros).<\/p>\n<h1><a name=\"exercicio\"><\/a>Como come\u00e7ar a aplicar? &#8211; Hello World<\/h1>\n<p>Como j\u00e1 falamos aqui em cima, Vue.js \u00e9 bem flex\u00edvel, ent\u00e3o existem v\u00e1rias formas de voc\u00ea come\u00e7ar uma aplica\u00e7\u00e3o com ele. Voc\u00ea pode apenas importar a biblioteca no <em>&lt;head&gt; <\/em>por exemplo e come\u00e7ar a desenvolver em cima (like a jQuery.\u00a0<strong>N\u00e3o compare Vue.js com jQuery, por favor<\/strong>).<\/p>\n<h2>Passo 1<\/h2>\n<p>Vamos ent\u00e3o criar nossa primeira aplica\u00e7\u00e3o em Vue.js usando a vue-cli. Atualmente \u00e9 a maneira mais simples de come\u00e7ar uma aplica\u00e7\u00e3o.<\/p>\n<p>Para isso \u00e9 m\u00ednimo que voc\u00ea tenha o <a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/node-js-o-que-e-entenda-agora\/\" target=\"_blank\" rel=\"noopener\">Node.js<\/a> instalado (vers\u00e3o &gt;= 6.x) pois faremos o processo atrav\u00e9s do NPM e tamb\u00e9m o Git.<\/p>\n<p>Vamos come\u00e7ar instalando a CLI com o seguinte comando:<\/p>\n<pre>npm install -g vue-cli<\/pre>\n<p>Dependendo de como estiver sua internet, pode ser r\u00e1pido ou n\u00e3o.<\/p>\n<p>Para ter certeza de que foi instalado, digite o comando:<\/p>\n<pre>vue - V<\/pre>\n<p>V mai\u00fasculo mesmo.<\/p>\n<h2>Passo 2<\/h2>\n<p>Para come\u00e7ar um projeto com a CLI agora, basta utilizar o seguinte comando:<\/p>\n<p>vue init <strong><span class=\"pl-k\">&lt;<\/span>template-name<span class=\"pl-k\">&gt;<\/span> <span class=\"pl-k\">&lt;<\/span>project-name<span class=\"pl-k\">&gt;<\/span><\/strong><\/p>\n<p>Se voc\u00ea quiser listar os templates dispon\u00edveis, use o comando\u00a0<em>vue list<\/em>. J\u00e1 o nome do projeto, voc\u00ea vai escolher. Para esse nosso Hello World, vamos criar o projeto hello-felizardo com o template do Webpack.<\/p>\n<pre>vue init webpack hello-felizardo<\/pre>\n<p>Ele vai fazer v\u00e1rias perguntas, que eu j\u00e1 vou deixar respondidas no gif abaixo, mas vou explicando.<\/p>\n<div id=\"attachment_972\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/criando-projeto-vue.gif\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" aria-describedby=\"caption-attachment-972\" class=\"wp-image-972 lazyload\" data-src=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/criando-projeto-vue.gif\" alt=\"Criando aplica\u00e7\u00e3o com vue-cli\" width=\"400\" height=\"214\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 400px; --smush-placeholder-aspect-ratio: 400\/214;\" \/><\/a><p id=\"caption-attachment-972\" class=\"wp-caption-text\">Clique na imagem para ampliar<\/p><\/div>\n<h2>Passo 3<\/h2>\n<p>Nesse momento n\u00e3o se preocupe se n\u00e3o entender tudo. N\u00f3s escolhemos o nome do projeto, escrevemos uma descri\u00e7\u00e3o para ele e dissemos quem \u00e9 o autor (ele pega automaticamente do Git).<\/p>\n<p>Depois escolhemos o tipo de build, nesse momento, apenas aperte\u00a0<em>Enter\u00a0<\/em>no default. Mas, de acordo com sua necessidade voc\u00ea pode mudar, eu atualmente n\u00e3o uso a padr\u00e3o.<\/p>\n<p>vue-router \u00e9 a lib, que j\u00e1 falamos aqui em cima e quase sempre utilizaremos ela. Mas apenas para este exemplo, coloque\u00a0<em>n<\/em>.<\/p>\n<p>ESlint, outra coisa que sempre uso nos meus projetos, s\u00e3o padr\u00f5es de c\u00f3digo. Nesse momento tamb\u00e9m podemos dizer\u00a0<em>n<\/em>.<\/p>\n<p>Para as duas perguntas seguintes, de testes, tamb\u00e9m vamos dizer n\u00e3o. Mas veja como utilizando o CLI voc\u00ea tem total no\u00e7\u00e3o do poder de usar o Vue.js e realmente ter um framework progressivo.<\/p>\n<p>E na \u00faltima pergunta, utilizaremos o NPM. Eu costumo usar o Yarn nos meus projetos, mas como eu disse, estamos apenas fazendo um\u00a0<em>Hello World<\/em>.<\/p>\n<h2>Passo 4<\/h2>\n<p>Vamos entrar na pasta do projeto, instalar suas depend\u00eancias e rodar o projeto.<\/p>\n<p>Para abrir a pasta do projeto:<\/p>\n<pre>cd hello-felizardo<\/pre>\n<p>Pronto, estamos agora dentro da pasta do projeto, se voc\u00ea quiser pode ir l\u00e1 na pasta dar uma olhada e ver que v\u00e1rios arquivos j\u00e1 s\u00e3o gerados, pasta de\u00a0<em>build<\/em>, pasta\u00a0<em>source (src)\u00a0<\/em>onde realmente n\u00f3s desenvolvemos e inserimos a maioria dos nossos arquivos.<\/p>\n<p>Para o desenvolvimento temos algumas depend\u00eancias, ent\u00e3o vamos instal\u00e1-las:<\/p>\n<pre>npm install<\/pre>\n<p>Pode demorar um pouco. Se der erro na instala\u00e7\u00e3o de algum pacote, repita o processo.<\/p>\n<p>Por \u00faltimo vamos rodar o projeto, com o comando:<\/p>\n<p>npm run dev<\/p>\n<p>No fim ele vai dar a mensagem de em qual porta o projeto est\u00e1 rodando, basta abrir essa URL e tchar\u00e3n!<\/p>\n<p><a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/hello-world-vue.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"wp-image-973 size-medium aligncenter lazyload\" data-src=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/hello-world-vue-300x282.png\" alt=\"Hello World Vue.js\" width=\"300\" height=\"282\" data-srcset=\"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/hello-world-vue-300x282.png 300w, https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/hello-world-vue.png 681w\" data-sizes=\"(max-width: 300px) 100vw, 300px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/282;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Pronto!\u00a0<\/strong>Sua primeira aplica\u00e7\u00e3o em Vue.js j\u00e1 est\u00e1 rodando!<\/p>\n<p>Claro, essa aplica\u00e7\u00e3o \u00e9 o c\u00f3digo mais b\u00e1sico poss\u00edvel de criar com o framework. Mas, \u00e9 um \u00f3timo come\u00e7o, pois j\u00e1 tem uma estrutura de diret\u00f3rios, e d\u00e1 pra voc\u00ea estudar o c\u00f3digo. Por falar nisso, olhe na pasta\u00a0<em>src<\/em> <em>&gt; components\u00a0<\/em>e troque a mensagem &#8220;Welcome to Your Vue.js App&#8221; para\u00a0<strong>Hello Felizardo!<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Ficou com d\u00favidas? Deixa nos coment\u00e1rios!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vue.js \u00e9 uma biblioteca\u00a0JavaScript\u00a0acess\u00edvel, vers\u00e1til e perform\u00e1tica. E apesar do site oficial dizer que Vue.js \u00e9 um framework JavaScript Progressivo, eu j\u00e1 vou come\u00e7ar discordando \ud83d\ude42 Entendemos por framework, aquela solu\u00e7\u00e3o &#8216;fechada&#8217; quando voc\u00ea j\u00e1 tem definido por exemplo a estrutura de<\/p>\n","protected":false},"author":1,"featured_media":966,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[117,5],"tags":[119,96,139,55,56,116,134],"class_list":["post-963","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","category-tecnologia","tag-angular","tag-angularjs","tag-framework","tag-javascript","tag-js","tag-react","tag-vue-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>O que \u00e9 Vue.js - Blog do Andr\u00e9 Felizardo<\/title>\n<meta name=\"description\" content=\"Entenda os principais conceitos do Vue.js, e porque ele \u00e9 uma excelente alternativa ao Angular ou Ember.js e t\u00e3o poderoso quanto o React!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O que \u00e9 Vue.js - Blog do Andr\u00e9 Felizardo\" \/>\n<meta property=\"og:description\" content=\"Entenda os principais conceitos do Vue.js, e porque ele \u00e9 uma excelente alternativa ao Angular ou Ember.js e t\u00e3o poderoso quanto o React!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog do Andr\u00e9 Felizardo\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-10T14:30:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-01-10T14:39:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png\" \/>\n\t<meta property=\"og:image:width\" content=\"750\" \/>\n\t<meta property=\"og:image:height\" content=\"393\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Felizardo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Felizardo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Felizardo\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\"},\"headline\":\"O que \u00e9 Vue.js\",\"datePublished\":\"2018-01-10T14:30:21+00:00\",\"dateModified\":\"2018-01-10T14:39:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/\"},\"wordCount\":1165,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/vuejs.png\",\"keywords\":[\"angular\",\"angularjs\",\"framework\",\"javascript\",\"js\",\"react\",\"vue.js\"],\"articleSection\":[\"Dev\",\"Tecnologia\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/\",\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/\",\"name\":\"O que \u00e9 Vue.js - Blog do Andr\u00e9 Felizardo\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/vuejs.png\",\"datePublished\":\"2018-01-10T14:30:21+00:00\",\"dateModified\":\"2018-01-10T14:39:38+00:00\",\"author\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\"},\"description\":\"Entenda os principais conceitos do Vue.js, e porque ele \u00e9 uma excelente alternativa ao Angular ou Ember.js e t\u00e3o poderoso quanto o React!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/vuejs.png\",\"contentUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/vuejs.png\",\"width\":750,\"height\":393},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-vue-js\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"O que \u00e9 Vue.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#website\",\"url\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/\",\"name\":\"Blog do Andr\u00e9 Felizardo\",\"description\":\"Programa\u00e7\u00e3o de dev para dev\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\",\"name\":\"Andr\u00e9 Felizardo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"caption\":\"Andr\u00e9 Felizardo\"},\"sameAs\":[\"http:\\\/\\\/www.andrefelizardo.com.br\"],\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/author\\\/andrefelizardo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"O que \u00e9 Vue.js - Blog do Andr\u00e9 Felizardo","description":"Entenda os principais conceitos do Vue.js, e porque ele \u00e9 uma excelente alternativa ao Angular ou Ember.js e t\u00e3o poderoso quanto o React!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/","og_locale":"pt_BR","og_type":"article","og_title":"O que \u00e9 Vue.js - Blog do Andr\u00e9 Felizardo","og_description":"Entenda os principais conceitos do Vue.js, e porque ele \u00e9 uma excelente alternativa ao Angular ou Ember.js e t\u00e3o poderoso quanto o React!","og_url":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/","og_site_name":"Blog do Andr\u00e9 Felizardo","article_published_time":"2018-01-10T14:30:21+00:00","article_modified_time":"2018-01-10T14:39:38+00:00","og_image":[{"width":750,"height":393,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png","type":"image\/png"}],"author":"Andr\u00e9 Felizardo","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Andr\u00e9 Felizardo","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#article","isPartOf":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/"},"author":{"name":"Andr\u00e9 Felizardo","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b"},"headline":"O que \u00e9 Vue.js","datePublished":"2018-01-10T14:30:21+00:00","dateModified":"2018-01-10T14:39:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/"},"wordCount":1165,"commentCount":0,"image":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png","keywords":["angular","angularjs","framework","javascript","js","react","vue.js"],"articleSection":["Dev","Tecnologia"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/","url":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/","name":"O que \u00e9 Vue.js - Blog do Andr\u00e9 Felizardo","isPartOf":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#primaryimage"},"image":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png","datePublished":"2018-01-10T14:30:21+00:00","dateModified":"2018-01-10T14:39:38+00:00","author":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b"},"description":"Entenda os principais conceitos do Vue.js, e porque ele \u00e9 uma excelente alternativa ao Angular ou Ember.js e t\u00e3o poderoso quanto o React!","breadcrumb":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#primaryimage","url":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png","contentUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png","width":750,"height":393},{"@type":"BreadcrumbList","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"http:\/\/www.andrefelizardo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"O que \u00e9 Vue.js"}]},{"@type":"WebSite","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#website","url":"http:\/\/www.andrefelizardo.com.br\/blog\/","name":"Blog do Andr\u00e9 Felizardo","description":"Programa\u00e7\u00e3o de dev para dev","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.andrefelizardo.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b","name":"Andr\u00e9 Felizardo","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","url":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","contentUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","caption":"Andr\u00e9 Felizardo"},"sameAs":["http:\/\/www.andrefelizardo.com.br"],"url":"https:\/\/www.andrefelizardo.com.br\/blog\/author\/andrefelizardo\/"}]}},"jetpack_featured_media_url":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png","jetpack_shortlink":"https:\/\/wp.me\/p6EP66-fx","jetpack-related-posts":[{"id":799,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/angular-2-nao-continuacao-do-angular-1\/","url_meta":{"origin":963,"position":0},"title":"Angular 2 &#8211; A n\u00e3o continua\u00e7\u00e3o do Angular 1","author":"Andr\u00e9 Felizardo","date":"15 de janeiro de 2017","format":false,"excerpt":"T\u00e1 estudando Angular 2? N\u00e3o? Fica ligado que a gente j\u00e1 est\u00e1 no Angular 4 beta 3! Angular 2 foi oficialmente lan\u00e7ado em setembro de 2016. Mas tamb\u00e9m n\u00e3o precisa ficar t\u00e3o preocupado. De qualquer forma vamos colocar os pingos nos is\u00a0pra voc\u00ea entender de uma vez por toda o\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":926,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-ember-js\/","url_meta":{"origin":963,"position":1},"title":"O que \u00e9 Ember.js","author":"Andr\u00e9 Felizardo","date":"30 de setembro de 2017","format":false,"excerpt":"Ember.js \u00e9 um framework Javascript (sim, mais um) para construir aplica\u00e7\u00f5es web ambiciosas. O objetivo dele \u00e9 aumentar a produtividade de desenvolvimento de aplica\u00e7\u00f5es web, mas focado no paradigma de que \u00e9 melhor gastar um pouco mais de tempo no desenvolvimento por\u00e9m facilitar a manuten\u00e7\u00e3o. Antes de detalhar mais o\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"Logo Ember.js","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1100,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/tipos-de-frontend\/","url_meta":{"origin":963,"position":2},"title":"Tipos de Frontend","author":"Andr\u00e9 Felizardo","date":"4 de mar\u00e7o de 2020","format":false,"excerpt":"A alguns anos atr\u00e1s escrevi um texto sobre o que \u00e9 o frontend, tamb\u00e9m palestrei sobre o que \u00e9 frontend, a carreira do frontend e os tipos de frontend que existem. Como minha vis\u00e3o sobre o assunto mudou bastante, resolvi revisitar esses materiais e escrever um parecer atualizado sobre os\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/andre-felizardo_tipos-de-frontend-1-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/andre-felizardo_tipos-de-frontend-1-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/andre-felizardo_tipos-de-frontend-1-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/andre-felizardo_tipos-de-frontend-1-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/andre-felizardo_tipos-de-frontend-1-1.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/andre-felizardo_tipos-de-frontend-1-1.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":438,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/","url_meta":{"origin":963,"position":3},"title":"O que \u00e9 AngularJS","author":"Andr\u00e9 Felizardo","date":"14 de dezembro de 2015","format":false,"excerpt":"AngularJS \u00e9 um framework para o desenvolvimento de aplica\u00e7\u00f5es web, utilizando a o JavaScript.\u00a0Seu objetivo \u00e9 aumentar aplicativos que podem ser acessados por um navegador web, sob o padr\u00e3o model\u2013view\u2013controller (MVC), em um esfor\u00e7o para facilitar tanto o desenvolvimento quanto o teste dos aplicativos. O que \u00e9 AngularJS? Hist\u00f3ria do\u2026","rel":"","context":"Em &quot;Dicas&quot;","block_context":{"text":"Dicas","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/dicas\/"},"img":{"alt_text":"AngularJS","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":706,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/react-js-o-que-e-introducao-ao-react\/","url_meta":{"origin":963,"position":4},"title":"React.js, o que \u00e9? &#8211; Introdu\u00e7\u00e3o ao React","author":"Andr\u00e9 Felizardo","date":"18 de outubro de 2016","format":false,"excerpt":"Se voc\u00ea tem acompanhado o mundo do Front-end nos \u00faltimos anos, com certeza voc\u00ea percebeu um boom em Frameworks e bibliotecas Javascript, como o AngularJS, React.js e v\u00e1rios outros. O que \u00e9 o React.js? React.js \u00e9 uma biblioteca JavaScript, desenvolvida por engenheiros\u00a0do Facebook (s\u00f3 de colocar o nome do Facebook\u2026","rel":"","context":"Em &quot;Curiosidades&quot;","block_context":{"text":"Curiosidades","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/curiosidades\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1152,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/web-components-guia-geral\/","url_meta":{"origin":963,"position":5},"title":"Web Components \u2013 Guia Geral","author":"Andr\u00e9 Felizardo","date":"20 de mar\u00e7o de 2020","format":false,"excerpt":"Neste guia veremos o que s\u00e3o web components, quando usar, sua estrutura e tamb\u00e9m um crash course criando um web component do zero que \u00e9 um card Pok\u00e9mon, com v\u00e1rios recursos interessantes. O que s\u00e3o web components Web Components s\u00e3o elementos customizados reutiliz\u00e1veis constru\u00eddos com diferentes tecnologias para serem utilizados\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/capa-web-components-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/capa-web-components-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/capa-web-components-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/capa-web-components-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/capa-web-components-1.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/03\/capa-web-components-1.png?resize=1400%2C800&ssl=1 4x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts\/963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=963"}],"version-history":[{"count":0,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts\/963\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/media\/966"}],"wp:attachment":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}