De forma bem resumida, uma linguagem de template permite que vc coloque placeholders, que podem ser substituídos por valores dinamicamente.
Muitas delas também suportam execução de código (condicionais, loops, etc), para no fim gerar um documento em algum formato.
O exemplo mais besta do mundo:
Oi {{nome}}
E aí de alguma forma (geralmente algum código) informa-se o que deve ser colocado no lugar do placeholder {{nome}}
, e o texto final é gerado (ex: "Oi Fulano").
No caso do React, o JSX é a linguagem de template, pois tem essas características. Exemplo tirado da documentação:
<div style={person.theme}>
<h1>{person.name}'s Todos</h1>
No caso, os placeholders person.theme
e person.name
serão trocados pelos respectivos valores do objeto person
que for passado ao componente.
Em resumo, é isso. Existem inúmeras linguagens de templates, para várias linguagens de programação e frameworks, mas todos seguem o mesmo princípio.
Muito obrigado pela resposta, isso me ajuda bastante a compreender mais a fundo como as coisas funcionam =D
Muito boa a explicação, um otimo professor.