In vuejs there is the vue compile global api method that can be used to compile a template string into an object that will contain a render function of that template in string form. The render function of the object that is returned by the Vue compile method can then be used as the render option of a vuejs instance.
If you are not familiar with render functions just yet it might be a good idea to read up on them, same goes for simple static vue templates also. However the general process that I follow thus far is that I always start out with a static template, and if for some reason I need to switch to a render function I do so. I can not say that I use the compile method that much thus far, however I do often use render functions that I write manually.
A basic example of the vue compile method might be to just call the vue compile method and bass a simple template string that makes use of a value that will be in a data object when used with a vue instance. The result of calling the vue compile method will be an object that will contain a render function as one of its arguments. The render function of the object can then be referenced to in a vuejs instance.
So this might be yet another basic example of what compile can be used for but I get the basic idea at least. If I have a template string in an external module and I want to create a render function from that string one way to do so would be to use the vue compile method.
Once a developer has a good grasp of render functions, templates and the compile global method they then have a good grasp on how to go about creating a view to be used with a vuejs project. I do not always go with render functions thus far, but when I do it is often because I am in a situation in which I have to. Static templates do have there limitations and render functions are there to help address those limitations.