如何将模板标记与Vue根实例

时间:2018-05-06 23:11:20

标签: vue.js html5-template

我正在使用Vue在Web应用程序中增强页面。在过去,我编写了单个文件组件,我发现使用<template>标记在文件顶部定义html模板很方便。

在定义Vue根实例时是否有办法使用此标记?或者我是否需要在Vue选项对象的template属性中添加一个字符串?

2 个答案:

答案 0 :(得分:3)

您可以使用x-template语法,如此

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>

  <script type="text/x-template" id="message-template">
        <div >
           {{message}}
        </div>
    </script>

  <div id="app"> </div>

 <script>
     var graphapp = new Vue({
            el: "#app",            
            data: {
                message: "hi there"
            },
            template: "#message-template"
     });   
  </script>

</body>
</html>

值得注意的是,如果您的编辑器不了解x模板块中的html,您也可以使用text/html

您还可以在页面中定义许多组件。当您从普通的html / js升级页面但无法完全更改页面时,这非常有用

请参阅:https://vuejs.org/v2/guide/components-edge-cases.html#X-Templates

答案 1 :(得分:0)

从2020年开始,您几乎可以使用HTML5标签directly

<template v-if="ok">
    <h1>Title</h1>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
</template>

在某些情况下,您可能不想使用<template>的原因是为了避免无效的HTML5验证和/或呈现错误(请参见Vue.js DOM Template Parsing Caveats)。