In the context of Vue, "DOM template" (commonly seen as "in-DOM template" in the rest of the Vue docs) refers to a component's markup specified in the document body/head, as opposed to a string template or SFC template.
While DOM templates include <script type="text/html"> or <template> in the document, these two tags (along with string templates and SFC templates) are not subject to the known DOM template parsing caveats because they're inert.
DOM templates
in-DOM template:
// index.html
<body>
<div id="app">
<ul>
<li v-for="i in 5">{{ i }}</li>
</ul>
</div>
</body>
demo
in-DOM template with <script type="text/html">:
// index.html
<body>
<script type="text/html" id="my-comp-template">
<ul>
<li v-for="i in 5">{{ i }}</li>
</ul>
</script>
<div id="app">
<my-comp></my-comp>
</div>
</body>
demo
in-DOM template with <template>:
// index.html
<body>
<template id="my-comp-template">
<ul>
<li v-for="i in 5">{{ i }}</li>
</ul>
</template>
<div id="app">
<my-comp></my-comp>
</div>
</body>
demo
String templates
// MyComponent.js
Vue.component('my-comp', {
template: `<ul>
<li v-for="i in 5">{{ i }}</li>
</ul>`
})
demo
SFC templates
// MyComponent.vue
<template>
<ul>
<li v-for="i in 5">{{ i }}</li>
</ul>
</template>
demo