vue教程:组件命名

组件命名

有两种:

  • (推荐)短横线分隔(kebab-case),字母全小写,多个单词组成时,中间由 -分割
    饿了么UI就是使用这种命名,见 链接

  • 大驼峰命名方式(PascalCase),类似Java的类名
    注意:需要在 vue cli脚手架 或 webpack 中编译后才能正常使用

注意:

  • 组件名不要与 html标签同名,如:组件名是 <button></button>、<div></div>

例子:短横线分割命名

<div id="app" >
    <std-com></std-com>使用组件
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script>
<script>
    var std_com={
        template:`
            <div>
                姓名:{{name}} <br/>
                年龄:{{age}} <br/>
                身高:{{length}} <br/>
            </div>`, 
        data: function(){
            return {
                name:'李雷',
                age:20,
                length:1.82

            }
        }
    }
    Vue.component("std-com",std_com)//短横线分割
    var app = new Vue({
        el: '#app',
        data: {
        }
    })

</script>

例子:驼峰命名

<div id="app" >
    <StdCom></StdCom>使用组件,注意:需要编译后才能正常运行
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
    var std_com={
        template:`
            <div>
                姓名:{{name}} <br/>
                年龄:{{age}} <br/>
                身高:{{length}} <br/>
            </div>`, 
        data: function(){
            return {
                name:'李雷',
                age:20,
                length:1.82

            }
        }
    }
    Vue.component("StdCom",std_com)//驼峰命名
    var app = new Vue({
        el: '#app',
        data: {
        }
    })

</script>

例子:不能与html标签同名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app" >
        <div></div>使用组件
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script>
    <script>
        var std_com={
            template:`
                <div>
                    姓名:{{name}} <br/>
                    年龄:{{age}} <br/>
                    身高:{{length}} <br/>
                </div>`, 
            data: function(){
                return {
                    name:'李雷',
                    age:20,
                    length:1.82
                }
            }
        }
        Vue.component("div",std_com)//组件名是div,与html标签同名
        var app = new Vue({
            el: '#app',
            data: {
            }
        })
    </script>
</body>
</html>

结果:页面不显示


原文出处:/show_1IX2gxUNH3Pw.html