美文网首页Vue
字符串模板和dom模板的区别

字符串模板和dom模板的区别

作者: 易冷zzz | 来源:发表于2020-09-25 14:11 被阅读0次

最近看到vue官方文档的时候,多次提及字符串模板dom模板,对这个概念比较模糊,经查阅后记录供日后参考。

1.字符串模板

字符串模板就是写在vue中的template中定义的模板,如.vue的单文件组件模板和定义组件时template属性值的模板。字符串模板不会在页面初始化参与页面的渲染,会被vue进行解析编译之后再被浏览器渲染,所以不受限于html结构和标签的命名。

Vue.component('MyComponentA', {
    template: '<div MyId="123"><MyComponentB>hello, world</MyComponentB></div>'
})

<div id="app">
    <MyComponentA></MyComponentA>
</div>
2.dom模板(或者称为Html模板)

dom模板就是写在html文件中,一打开就会被浏览器进行解析渲染的,所以要遵循html结构和标签的命名,否则浏览器不解析也就不能获取内容了。

下面的例子不会被正确渲染, 会被解析成mycomponent,但是注册的vue的组件是MyComponent,因此无法渲染。

<!DOCTYPE <html>
    <head>
        <meta charset="utf-8">
        <title>Vue Component</title>
    </head>
    <body>
        <div id="app"> 
            Hello Vue
            <MyComponent></MyComponent>
        </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script >
        //全局注册
        Vue.component('MyComponent', {
            template: '<div>组件类容</div>'
        });
        new Vue ({
            el: '#app'
        });
    </script>
    </body>
</html>

所以,下面的例子就可以正常显示了:

<!DOCTYPE <html>
    <head>
        <meta charset="utf-8">
        <title>Vue Component</title>
    </head>
    <body>
        <div id="app"> 
            Hello Vue
            <my-component></my-component>
        </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script >
        //全局注册
        Vue.component('my-component', {
            template: '<div>组件类容</div>'
        });
        new Vue ({
            el: '#app'
        });
    </script>
    </body>
</html>

因为html对大小写不敏感,所以在DOM模板中使用组件必须使用kebab-case命名法(短横线命名)。
因此,对于组件名称的命名,可参考如下实现:

/*-- 在单文件组件、JSX和字符串模板中 --*/
<MyComponent/>
/*-- 在 DOM 模板中 --*/
<my-component></my-component>
或者
/*-- 在所有地方 --*/
<my-component></my-component>

相关文章

  • 字符串模板和dom模板的区别

    最近看到vue官方文档的时候,多次提及字符串模板和dom模板,对这个概念比较模糊,经查阅后记录供日后参考。 1.字...

  • Vue 中涉及的 字符串模板 与 dom 模板

    Dom模板(或者称为Html模板)(非字符串的模板) Dom 模板就是写在 html 文件中,一打开就会被浏览器进...

  • ES6 - 模板字符串

    导读: 传统的字符串模板 :在传统的Javascript中,如果我们对DOM进行操作,字符串模板通常采用加号( +...

  • Vue2.0的字符串模板、html模板、组件、slot

    字符串模板 VS html模板 首先,Vue 会将 template 中的内容插到 DOM 中,以方便解析标签。由...

  • vue中涉及的字符串模板与dom模板

    最近看到vue官方文档的时候,多次提及字符串模板和dom模板,对这个概念比较模糊,经查阅后记录供日后参考。 1.字...

  • VUE2.0

    Vue疑问点: 1,组件中html模板和字符串模板的区别?2,sync?不太懂 组件 组件的基本组成:样式结构 行...

  • ES6-字符串方法及其实现

    1.模板字符串 模板字符串替换+操作符,来拼接字符串,并且支持换行: 标签模板: 标签模板其实不是模板,而是函数调...

  • ES6(4)、新版字符串

    1、模板字符串 模板字符串使用反引号 (``) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(...

  • vue.js的dom模板和字符串模板

    这两天看Vue的时候,里面提到字符串模板和非字符串模板,搞的有点儿懵圈,特地查了下,也记录下,免得后面再发生这样的...

  • ECMAScript6 学习(一)

    字符串的扩展 字符串的遍历器接口for...of循环 模板字符串 字符串中嵌入变量 标签模板 模板字符串可以紧跟在...

网友评论

    本文标题:字符串模板和dom模板的区别

    本文链接:https://www.haomeiwen.com/subject/lfcfuktx.html