And why would I want to? Comes down to better separation of concerns - being able to separate HTML markup from Javascript.
What is a template?
A template is a section of HTML code that we want to inject into the browser
We often would like to populate the template with variable values (think mustache)
So we need a couple of things:
A way to load templates conveniently.
Javascript runs in a single threaded fast event loop in a browser.
Loading happens asynchronously, but it’s inconvenient to have to wait for templates to load before we can use them in Javascript code.
A way to parse templates and replace some of the HTML code with data from Javascript.
These are two separate concerns and therefore should be dealt with separately.