[{"data":1,"prerenderedAt":826},["ShallowReactive",2],{"pt-BR-article-\u002Fblog\u002Fcomo-adicionar-caracteres-especiais-no-i18n":3,"pt-BR-related-posts-\u002Fblog\u002Fcomo-adicionar-caracteres-especiais-no-i18n":667},{"id":4,"title":5,"articleCover":6,"articleCoverEmbed":7,"articleCoverEmbedUploadDate":7,"articleCoverHeight":8,"articleCoverWidth":9,"authorId":10,"body":11,"categoriesIds":648,"description":651,"enAlternateSlug":652,"extension":653,"meta":654,"navigation":655,"path":656,"ptBrAlternateSlug":657,"publishedAt":658,"seo":659,"sitemap":660,"stem":664,"updatedAt":663,"wordCount":665,"__hash__":666},"blog\u002Fblog\u002Fcomo-adicionar-caracteres-especiais-no-i18n.md","Como Adicionar Caracteres Especiais em Traduções do i18N","\u002Fimages\u002Fblog\u002Fi18n\u002Fi18n-caracteres-especiais-no-nuxtjs-thumb.webp",null,720,1280,"thiago-nunes-batista",{"type":12,"value":13,"toc":642},"minimark",[14,23,42,47,73,100,103,110,113,123,133,206,424,428,441,444,610,623,628,638],[15,16,17,18,22],"p",{},"O ",[19,20,21],"code",{},"i18n"," é uma das ferramentas mais populares para a internacionalização de sites e aplicativos, e em alguns cenários pode ser desafiador resolver problemas específicos de se utilizar o i18n com a ferramenta que você está utilizando.",[15,24,25,26,29,30,33,34,37,38,41],{},"Se você tentou utilizar algum caractere como ",[19,27,28],{},"@"," ou ",[19,31,32],{},"{"," nos arquivos de tradução do i18n no ",[19,35,36],{},"Vue.js"," e se deparou com um ",[19,39,40],{},"erro 500",", neste artigo você vai entender o porquê isso ocorreu e também vai aprender como resolver esse problema.",[43,44,46],"h2",{"id":45},"o-problema-de-alguns-caracteres-no-i18n","O problema de alguns caracteres no I18N",[15,48,49,50,53,54,57,58,61,62,65,66,61,69,72],{},"Assim como o ",[19,51,52],{},"React.JS"," que reserva palavras-chave do ",[19,55,56],{},"HTML"," como ",[19,59,60],{},"class"," e ",[19,63,64],{},"for",", substituindo esses atributos por ",[19,67,68],{},"className",[19,70,71],{},"htmlFor",", o mesmo ocorre com o i18n que trata alguns caracteres de forma especial:",[74,75,76,81,86,90,95],"ul",{},[77,78,79],"li",{},[19,80,32],{},[77,82,83],{},[19,84,85],{},"}",[77,87,88],{},[19,89,28],{},[77,91,92],{},[19,93,94],{},"$",[77,96,97],{},[19,98,99],{},"|",[15,101,102],{},"Se não trabalharmos da forma correta com esses caracteres, você poderá se deparar com o mesmo erro que eu tive:",[104,105],"img",{"alt":106,"height":107,"src":108,"width":109},"exemplo de erro ao adicionar caracteres especiais nos arquivos de tradução do i18n",241,"\u002Fimages\u002Fblog\u002Fi18n\u002Fspecial-character-error.webp",680,[15,111,112],{},"Para entendermos o problema, vamos levar em consideração um projeto que segue a seguinte estrutura:",[114,115,120],"pre",{"className":116,"code":118,"language":119},[117],"language-text",".\n├── i18n \u003C-- Pasta contendo configurações do i18n\n│   └── locales \u003C--- Pasta contendo os arquivos de traduções do i18n\n│       ├── en.json \u003C--- Arquivo de tradução do I18n para o idioma Inglês\n│       └── pt-BR.json \u003C--- Arquivo de tradução do I18n para o idioma Português do Brasil\n","text",[19,121,118],{"__ignoreMap":122},"",[15,124,125,126,129,130,132],{},"Dentro do arquivo ",[19,127,128],{},"pt-BR.json"," estão as chaves e valores referentes aos textos traduzidos para o idioma Português do Brasil, e o problema começou quando eu fui adicionar em um dos links do Footer o caractere ",[19,131,28],{},":",[134,135,136,152],"table",{},[137,138,139],"thead",{},[140,141,142,146,149],"tr",{},[143,144,145],"th",{},"Caractere Especial",[143,147,148],{},"Descrição",[143,150,151],{},"Solução",[153,154,155,166,176,186,196],"tbody",{},[140,156,157,160,163],{},[158,159,28],"td",{},[158,161,162],{},"Utilizado em URLs, e-mails, etc.",[158,164,165],{},"{'@'}",[140,167,168,170,173],{},[158,169,32],{},[158,171,172],{},"Início de um bloco em JSON",[158,174,175],{},"{'{'}",[140,177,178,180,183],{},[158,179,85],{},[158,181,182],{},"Fim de um bloco em JSON",[158,184,185],{},"{'}'}",[140,187,188,190,193],{},[158,189,94],{},[158,191,192],{},"Utilizado em interpolação de strings",[158,194,195],{},"{'$'}",[140,197,198,200,203],{},[158,199,99],{},[158,201,202],{},"Caractere Pipe",[158,204,205],{},"{'|'}",[114,207,211],{"className":208,"code":209,"language":210,"meta":122,"style":122},"language-json shiki shiki-themes dracula","{\n  \"footer\": {\n    \"socialMedia\": [\n      {\n        \"url\": \"https:\u002F\u002Fwww.youtube.com\u002F@CodigoAoPonto\",\n        \"ariaLabel\": \"Ir para o canal do Código ao Ponto no Youtube\",\n        \"icon\": \"mdi:youtube\"\n      },\n      {\n        \"url\": \"https:\u002F\u002Fwww.instagram.com\u002Fcodigo_ponto\",\n        \"ariaLabel\": \"Ir para o Instagram do Código ao Ponto\",\n        \"icon\": \"mdi:instagram\"\n      }\n    ]\n  }\n}\n","json",[19,212,213,222,242,258,264,290,311,331,337,342,362,382,400,406,412,418],{"__ignoreMap":122},[214,215,218],"span",{"class":216,"line":217},"line",1,[214,219,221],{"class":220},"sCdxs","{\n",[214,223,225,229,233,236,239],{"class":216,"line":224},2,[214,226,228],{"class":227},"sY8FZ","  \"",[214,230,232],{"class":231},"sLL85","footer",[214,234,235],{"class":227},"\"",[214,237,132],{"class":238},"s0Tla",[214,240,241],{"class":220}," {\n",[214,243,245,248,251,253,255],{"class":216,"line":244},3,[214,246,247],{"class":227},"    \"",[214,249,250],{"class":231},"socialMedia",[214,252,235],{"class":227},[214,254,132],{"class":238},[214,256,257],{"class":220}," [\n",[214,259,261],{"class":216,"line":260},4,[214,262,263],{"class":220},"      {\n",[214,265,267,270,273,275,277,281,285,287],{"class":216,"line":266},5,[214,268,269],{"class":227},"        \"",[214,271,272],{"class":231},"url",[214,274,235],{"class":227},[214,276,132],{"class":238},[214,278,280],{"class":279},"seVfx"," \"",[214,282,284],{"class":283},"s-mGx","https:\u002F\u002Fwww.youtube.com\u002F@CodigoAoPonto",[214,286,235],{"class":279},[214,288,289],{"class":220},",\n",[214,291,293,295,298,300,302,304,307,309],{"class":216,"line":292},6,[214,294,269],{"class":227},[214,296,297],{"class":231},"ariaLabel",[214,299,235],{"class":227},[214,301,132],{"class":238},[214,303,280],{"class":279},[214,305,306],{"class":283},"Ir para o canal do Código ao Ponto no Youtube",[214,308,235],{"class":279},[214,310,289],{"class":220},[214,312,314,316,319,321,323,325,328],{"class":216,"line":313},7,[214,315,269],{"class":227},[214,317,318],{"class":231},"icon",[214,320,235],{"class":227},[214,322,132],{"class":238},[214,324,280],{"class":279},[214,326,327],{"class":283},"mdi:youtube",[214,329,330],{"class":279},"\"\n",[214,332,334],{"class":216,"line":333},8,[214,335,336],{"class":220},"      },\n",[214,338,340],{"class":216,"line":339},9,[214,341,263],{"class":220},[214,343,345,347,349,351,353,355,358,360],{"class":216,"line":344},10,[214,346,269],{"class":227},[214,348,272],{"class":231},[214,350,235],{"class":227},[214,352,132],{"class":238},[214,354,280],{"class":279},[214,356,357],{"class":283},"https:\u002F\u002Fwww.instagram.com\u002Fcodigo_ponto",[214,359,235],{"class":279},[214,361,289],{"class":220},[214,363,365,367,369,371,373,375,378,380],{"class":216,"line":364},11,[214,366,269],{"class":227},[214,368,297],{"class":231},[214,370,235],{"class":227},[214,372,132],{"class":238},[214,374,280],{"class":279},[214,376,377],{"class":283},"Ir para o Instagram do Código ao Ponto",[214,379,235],{"class":279},[214,381,289],{"class":220},[214,383,385,387,389,391,393,395,398],{"class":216,"line":384},12,[214,386,269],{"class":227},[214,388,318],{"class":231},[214,390,235],{"class":227},[214,392,132],{"class":238},[214,394,280],{"class":279},[214,396,397],{"class":283},"mdi:instagram",[214,399,330],{"class":279},[214,401,403],{"class":216,"line":402},13,[214,404,405],{"class":220},"      }\n",[214,407,409],{"class":216,"line":408},14,[214,410,411],{"class":220},"    ]\n",[214,413,415],{"class":216,"line":414},15,[214,416,417],{"class":220},"  }\n",[214,419,421],{"class":216,"line":420},16,[214,422,423],{"class":220},"}\n",[43,425,427],{"id":426},"a-solução","A solução",[15,429,430,431,434,435,437,438,440],{},"Para resolver esse problema nós teremos que fazer a ",[19,432,433],{},"Literal Interpolation"," no i18n, onde para usar o caractere ",[19,436,28],{}," no arquivo de traduções do i18n nós usaremos o seguinte texto: ",[19,439,165],{},", onde basicamente adicionamos as chaves em volta do caractere especial e também aspas simples.",[15,442,443],{},"Com isso feito, o arquivo com o problema resolvido terá o seguinte formato:",[114,445,447],{"className":208,"code":446,"language":210,"meta":122,"style":122},"{\n  \"footer\": {\n    \"socialMedia\": [\n      {\n        \"url\": \"https:\u002F\u002Fwww.youtube.com\u002F{'@'}CodigoAoPonto\",\n        \"ariaLabel\": \"Ir para o canal do Código ao Ponto no Youtube\",\n        \"icon\": \"mdi:youtube\"\n      },\n      {\n        \"url\": \"https:\u002F\u002Fwww.instagram.com\u002Fcodigo_ponto\",\n        \"ariaLabel\": \"Ir para o Instagram do Código ao Ponto\",\n        \"icon\": \"mdi:instagram\"\n      }\n    ]\n  }\n}\n",[19,448,449,453,465,477,481,500,518,534,538,542,560,578,594,598,602,606],{"__ignoreMap":122},[214,450,451],{"class":216,"line":217},[214,452,221],{"class":220},[214,454,455,457,459,461,463],{"class":216,"line":224},[214,456,228],{"class":227},[214,458,232],{"class":231},[214,460,235],{"class":227},[214,462,132],{"class":238},[214,464,241],{"class":220},[214,466,467,469,471,473,475],{"class":216,"line":244},[214,468,247],{"class":227},[214,470,250],{"class":231},[214,472,235],{"class":227},[214,474,132],{"class":238},[214,476,257],{"class":220},[214,478,479],{"class":216,"line":260},[214,480,263],{"class":220},[214,482,483,485,487,489,491,493,496,498],{"class":216,"line":266},[214,484,269],{"class":227},[214,486,272],{"class":231},[214,488,235],{"class":227},[214,490,132],{"class":238},[214,492,280],{"class":279},[214,494,495],{"class":283},"https:\u002F\u002Fwww.youtube.com\u002F{'@'}CodigoAoPonto",[214,497,235],{"class":279},[214,499,289],{"class":220},[214,501,502,504,506,508,510,512,514,516],{"class":216,"line":292},[214,503,269],{"class":227},[214,505,297],{"class":231},[214,507,235],{"class":227},[214,509,132],{"class":238},[214,511,280],{"class":279},[214,513,306],{"class":283},[214,515,235],{"class":279},[214,517,289],{"class":220},[214,519,520,522,524,526,528,530,532],{"class":216,"line":313},[214,521,269],{"class":227},[214,523,318],{"class":231},[214,525,235],{"class":227},[214,527,132],{"class":238},[214,529,280],{"class":279},[214,531,327],{"class":283},[214,533,330],{"class":279},[214,535,536],{"class":216,"line":333},[214,537,336],{"class":220},[214,539,540],{"class":216,"line":339},[214,541,263],{"class":220},[214,543,544,546,548,550,552,554,556,558],{"class":216,"line":344},[214,545,269],{"class":227},[214,547,272],{"class":231},[214,549,235],{"class":227},[214,551,132],{"class":238},[214,553,280],{"class":279},[214,555,357],{"class":283},[214,557,235],{"class":279},[214,559,289],{"class":220},[214,561,562,564,566,568,570,572,574,576],{"class":216,"line":364},[214,563,269],{"class":227},[214,565,297],{"class":231},[214,567,235],{"class":227},[214,569,132],{"class":238},[214,571,280],{"class":279},[214,573,377],{"class":283},[214,575,235],{"class":279},[214,577,289],{"class":220},[214,579,580,582,584,586,588,590,592],{"class":216,"line":384},[214,581,269],{"class":227},[214,583,318],{"class":231},[214,585,235],{"class":227},[214,587,132],{"class":238},[214,589,280],{"class":279},[214,591,397],{"class":283},[214,593,330],{"class":279},[214,595,596],{"class":216,"line":402},[214,597,405],{"class":220},[214,599,600],{"class":216,"line":408},[214,601,411],{"class":220},[214,603,604],{"class":216,"line":414},[214,605,417],{"class":220},[214,607,608],{"class":216,"line":420},[214,609,423],{"class":220},[15,611,612,613,616,617,622],{},"Depois de resolver esse problema, se você precisar conferir o tamanho de uma string traduzida, por exemplo para não estourar o ",[19,614,615],{},"maxlength"," de um campo ou o espaço de um botão, o ",[618,619,621],"a",{"href":620},"\u002Fferramentas\u002Fcontador-de-caracteres-e-palavras","Contador de Caracteres e Palavras"," do Código ao Ponto conta caracteres, palavras e linhas em tempo real, direto no navegador.",[624,625,627],"h3",{"id":626},"conclusão","Conclusão",[15,629,630,631,637],{},"Espero que tenha conseguido te ajudar a resolver esse desafio de utilizar caracteres especiais no i18n com Vue.js, se você ainda tiver dúvidas pode consultar a ",[618,632,636],{"href":633,"rel":634},"https:\u002F\u002Fvue-i18n.intlify.dev\u002Fguide\u002Fessentials\u002Fsyntax#literal-interpolation",[635],"nofollow","Documentação Oficial do VueI18n",".",[639,640,641],"style",{},"html pre.shiki code .sCdxs, html code.shiki .sCdxs{--shiki-default:#F8F8F2}html pre.shiki code .sY8FZ, html code.shiki .sY8FZ{--shiki-default:#8BE9FE}html pre.shiki code .sLL85, html code.shiki .sLL85{--shiki-default:#8BE9FD}html pre.shiki code .s0Tla, html code.shiki .s0Tla{--shiki-default:#FF79C6}html pre.shiki code .seVfx, html code.shiki .seVfx{--shiki-default:#E9F284}html pre.shiki code .s-mGx, html code.shiki .s-mGx{--shiki-default:#F1FA8C}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":122,"searchDepth":224,"depth":224,"links":643},[644,645],{"id":45,"depth":224,"text":46},{"id":426,"depth":224,"text":427,"children":646},[647],{"id":626,"depth":244,"text":627},[649,650],"nuxt","vuejs","Aprenda a adicionar caracteres especiais como @ e {} nas traduções do i18n no Vue.js sem causar erros de compilação, com a solução passo a passo e exemplos.","how-to-add-special-characters-on-i18n","md",{},true,"\u002Fblog\u002Fcomo-adicionar-caracteres-especiais-no-i18n","como-adicionar-caracteres-especiais-no-i18n","2025-01-29",{"title":5,"description":651},{"loc":656,"images":661,"lastmod":663},[662],{"loc":108},"2026-10-06","blog\u002Fcomo-adicionar-caracteres-especiais-no-i18n",413,"XjGVS2z9OY3rNm3e_KgGZbUatXwuUWaxaeI-BZtH-HA",[668,676,678,685,693,701,709,716,724,732,739,747,753,762,769,776,783,790,797,805,812,818],{"id":669,"path":670,"title":671,"articleCover":672,"categoriesIds":673,"publishedAt":675},"blog\u002Fblog\u002Fa-maneira-correta-de-utilizar-a-nomenclatura-bem.md","\u002Fblog\u002Fa-maneira-correta-de-utilizar-a-nomenclatura-bem","A maneira correta de utilizar a nomenclatura BEM","\u002Fimages\u002Fblog\u002Fa-maneira-correta-de-utilizar-a-nomenclatura-bem.webp",[674],"css","2024-05-05",{"id":4,"path":656,"title":5,"articleCover":6,"categoriesIds":677,"publishedAt":658},[649,650],{"id":679,"path":680,"title":681,"articleCover":682,"categoriesIds":683,"publishedAt":684},"blog\u002Fblog\u002Fcomo-adicionar-o-google-tag-manager-no-seu-website-com-nuxt-3.md","\u002Fblog\u002Fcomo-adicionar-o-google-tag-manager-no-seu-website-com-nuxt-3","Como adicionar o Google Tag Manager no seu website com Nuxt 3","\u002Fimages\u002Fblog\u002Fcomo-adicionar-google-tag-manager-em-projeto-com-nuxt-3.webp",[649,650],"2024-08-15",{"id":686,"path":687,"title":688,"articleCover":689,"categoriesIds":690,"publishedAt":692},"blog\u002Fblog\u002Fcomo-configurar-chave-ssh-no-git-para-usar-no-github.md","\u002Fblog\u002Fcomo-configurar-chave-ssh-no-git-para-usar-no-github","Chave SSH no Git: Como Configurar chave SSH para usar no GitHub","\u002Fimages\u002Fblog\u002Fgit\u002Fcomo-criar-e-configurar-chave-ssh-no-github-thumb.webp",[691],"git","2025-02-04",{"id":694,"path":695,"title":696,"articleCover":697,"categoriesIds":698,"publishedAt":700},"blog\u002Fblog\u002Fcomo-consumir-uma-api-no-javascript-com-a-fetch-api.md","\u002Fblog\u002Fcomo-consumir-uma-api-no-javascript-com-a-fetch-api","Como consumir uma API no JavaScript com a Fetch API","\u002Fimages\u002Fblog\u002Fcomo-consumir-uma-api-no-javascript-com-a-fetch-api.webp",[699],"javascript","2024-09-05",{"id":702,"path":703,"title":704,"articleCover":705,"categoriesIds":706,"publishedAt":708},"blog\u002Fblog\u002Fcomo-criar-dados-estruturados-com-nuxtjs.md","\u002Fblog\u002Fcomo-criar-dados-estruturados-com-nuxtjs","Como Adicionar Dados Estruturados no Nuxt.JS","\u002Fimages\u002Fblog\u002Fseo\u002Fstructured-data\u002Fstructured-data-thumb-1.webp",[649,650,707],"seo","2025-01-22",{"id":710,"path":711,"title":712,"articleCover":713,"categoriesIds":714,"publishedAt":715},"blog\u002Fblog\u002Fcomo-funciona-o-sistema-de-rotas-no-nuxt.md","\u002Fblog\u002Fcomo-funciona-o-sistema-de-rotas-no-nuxt","Rotas no Nuxt: dinâmicas, aninhadas e catch-all","\u002Fimages\u002Fblog\u002Fnuxt\u002Fsistema-de-rotas-no-nuxtjs-thumb.webp",[649,650],"2025-03-12",{"id":717,"path":718,"title":719,"articleCover":720,"categoriesIds":721,"publishedAt":723},"blog\u002Fblog\u002Fcomo-lidar-com-inveja-de-outros-programadores.md","\u002Fblog\u002Fcomo-lidar-com-inveja-de-outros-programadores","Como Lidar com Inveja de Outros Programadores","\u002Fimages\u002Fblog\u002Fcarreira\u002Finveja-de-programadores-com-quem-se-destaca.webp",[722],"career","2025-08-29",{"id":725,"path":726,"title":727,"articleCover":728,"categoriesIds":729,"publishedAt":731},"blog\u002Fblog\u002Fcomo-recuperar-arquivos-perdidos-no-git-pelo-vscode.md","\u002Fblog\u002Fcomo-recuperar-arquivos-perdidos-no-git-pelo-vscode","Perdeu arquivos no Git sem commit? Veja como recuperar pelo VS Code","\u002Fimages\u002Fblog\u002Fcomo-recuperar-arquivos-perdido-no-git-pelo-vscode.webp",[691,730],"vscode","2024-05-15",{"id":733,"path":734,"title":735,"articleCover":736,"categoriesIds":737,"publishedAt":738},"blog\u002Fblog\u002Fcomo-usar-middlewares-no-nuxtjs.md","\u002Fblog\u002Fcomo-usar-middlewares-no-nuxtjs","Middlewares: O que são e como utilizar no Nuxt.JS","\u002Fimages\u002Fblog\u002Fnuxt\u002Fmiddlewares-no-front-end.webp",[649,650],"2025-01-14",{"id":740,"path":741,"title":742,"articleCover":743,"categoriesIds":744,"publishedAt":746},"blog\u002Fblog\u002Fcomo-validar-cartao-de-credito-com-javascript.md","\u002Fblog\u002Fcomo-validar-cartao-de-credito-com-javascript","Como validar um cartão de crédito com JavaScript (algoritmo de Luhn)","\u002Fimages\u002Fblog\u002Fjavascript\u002Fcomo-validar-cartao-de-credito-com-javascript.webp",[699,745],"tools","2026-09-17",{"id":748,"path":749,"title":750,"articleCover":751,"categoriesIds":752,"publishedAt":746},"blog\u002Fblog\u002Fcomo-validar-cpf-com-javascript.md","\u002Fblog\u002Fcomo-validar-cpf-com-javascript","Como validar um CPF com JavaScript","\u002Fimages\u002Fblog\u002Fjavascript\u002Fcomo-validar-cpf-com-javascript.webp",[699,745],{"id":754,"path":755,"title":756,"articleCover":757,"categoriesIds":758,"publishedAt":761},"blog\u002Fblog\u002Fcomponentes-do-figma-um-guia-para-te-ajudar-a-comecar.md","\u002Fblog\u002Fcomponentes-do-figma-um-guia-para-te-ajudar-a-comecar","Guia de Componentes no Figma para Iniciantes","\u002Fimages\u002Fblog\u002Ffigma\u002Fcomponentes-do-figma-um-guia-para-te-ajudar-a-comecar.png",[759,760],"figma","ux","2024-10-15",{"id":763,"path":764,"title":765,"articleCover":766,"categoriesIds":767,"publishedAt":768},"blog\u002Fblog\u002Fhub-de-ferramentas-gratuitas-para-desenvolvedores.md","\u002Fblog\u002Fhub-de-ferramentas-gratuitas-para-desenvolvedores","Criei um Hub de Ferramentas Web Gratuitas para Devs","\u002Fimages\u002Fblog\u002Fferramentas\u002Fhub-ferramentas-gratuitas-para-desenvolvedores.webp",[745],"2026-01-06",{"id":770,"path":771,"title":772,"articleCover":773,"categoriesIds":774,"publishedAt":775},"blog\u002Fblog\u002Fo-que-sao-diretivas-no-vue-e-como-implementa-las.md","\u002Fblog\u002Fo-que-sao-diretivas-no-vue-e-como-implementa-las","Diretivas no Vue 3: nativas e personalizadas","\u002Fimages\u002Fblog\u002Fvue\u002Fo-que-sao-diretivas-no-vue-e-como-implementa-las.webp",[650],"2025-03-21",{"id":777,"path":778,"title":779,"articleCover":780,"categoriesIds":781,"publishedAt":782},"blog\u002Fblog\u002Fog-tags-o-que-sao-e-como-adicionar-no-seu-site.md","\u002Fblog\u002Fog-tags-o-que-sao-e-como-adicionar-no-seu-site","OG Tags: O que São e Como Adicioná-las ao Seu Site","\u002Fimages\u002Fblog\u002Fseo\u002Fo-que-e-como-utilizar-as-og-tags.webp",[707],"2024-10-05",{"id":784,"path":785,"title":786,"articleCover":787,"categoriesIds":788,"publishedAt":789},"blog\u002Fblog\u002Fos-principais-erros-de-programadores-em-entrevistas-de-emprego.md","\u002Fblog\u002Fos-principais-erros-de-programadores-em-entrevistas-de-emprego","Os principais erros de programadores em entrevistas de emprego","\u002Fimages\u002Fblog\u002Fnao-cometa-esses-erros-na-sua-entrevista.webp",[722],"2024-09-15",{"id":791,"path":792,"title":793,"articleCover":794,"categoriesIds":795,"publishedAt":796},"blog\u002Fblog\u002Fqual-a-diferenca-entre-a-composition-api-e-options-api-no-vuejs.md","\u002Fblog\u002Fqual-a-diferenca-entre-a-composition-api-e-options-api-no-vuejs","Qual a diferença entre a Composition API e Options API no VueJS","\u002Fimages\u002Fblog\u002Fvue\u002Fqual-a-diferenca-entre-a-composition-api-e-options-api-no-vuejs.webp",[650],"2025-02-20",{"id":798,"path":799,"title":800,"articleCover":801,"categoriesIds":802,"publishedAt":804},"blog\u002Fblog\u002Fscroll-infinito-como-adicionar-ao-seu-site-e-suas-vantagens.md","\u002Fblog\u002Fscroll-infinito-como-adicionar-ao-seu-site-e-suas-vantagens","Scroll Infinito no React-Native: Guia Prático","\u002Fimages\u002Fblog\u002Freact-native\u002Fscroll-infinito-como-adicionar-ao-seu-site-e-suas-vantagens.webp",[803],"react-native","2024-12-15",{"id":806,"path":807,"title":808,"articleCover":809,"categoriesIds":810,"publishedAt":811},"blog\u002Fblog\u002Fvercel-compra-nuxt-labs.md","\u002Fblog\u002Fvercel-compra-nuxt-labs","Vercel comprou a Nuxt Labs! E agora, o que muda para o Nuxt?","\u002Fimages\u002Fblog\u002Fnuxt\u002Fvercel-compra-nuxt-labs.webp",[649],"2025-07-17",{"id":813,"path":814,"title":815,"articleCover":816,"categoriesIds":817,"publishedAt":663},"blog\u002Fblog\u002Fvue-vapor-mode-como-funciona-e-como-usar.md","\u002Fblog\u002Fvue-vapor-mode-como-funciona-e-como-usar","Vue Vapor Mode: o que é e o que muda no Vue 3.6","\u002Fimages\u002Fblog\u002Fvue\u002Fvue-vapor-mode-como-funciona-e-como-usar.webp",[650,649],{"id":819,"path":820,"title":821,"articleCover":822,"categoriesIds":823,"publishedAt":825},"blog\u002Fblog\u002Fweb-vitals-como-a-experiencia-do-usuario-vai-afetar-o-seo-do-seu-site.md","\u002Fblog\u002Fweb-vitals-como-a-experiencia-do-usuario-vai-afetar-o-seo-do-seu-site","Web Vitals e SEO: como a experiência do usuário afeta o seu site","\u002Fimages\u002Fblog\u002Fseo\u002Fweb-vitals\u002Fweb-vitals-como-a-experiencia-do-usuario-vai-afetar-o-seo-do-seu-site.webp",[707,824],"web-vitals","2024-10-25",1791682331218]