扩展

虽然前文中并没有讲解组件,也没有介绍 template 属性,但这里把结论先告诉大家,用以理解知识点。

  • 情况一:Vue 实例中既没有 el 属性,也没有 template 属性,程序会报错。

  • 情况二:只有 el 属性,el 中的 HTML 代码就是要渲染的内容。

  • 情况三:只有 template 属性,template 中的代码就是要渲染的内容(组件详解)。

  • 情况四:template 属性和 el 属性都存在时,这是扩展中的重点。当两者都存在时,template 中的内容会替换 el 中的内容,因为 template 的优先级高于 el,代码如下。

视图层代码如下。

<div id="app" v-cloak>
    <h1>{{ msg }}</h1>
</div>

M 层代码如下。

<script>
    var vm = new Vue({
        el: '#app',
        template: '<h1>我是template内容</h1>',
        data: {
            msg: 'Hello World'
        },
        methods: {}
    });
</script>

运行结果如图 3-8 所示。

image 2025 02 11 12 38 10 007
Figure 1. 图3-8 渲染template标签内容

运行结果显示,el 控制的 div 盒子会被 template 模板中的内容替换。