vue--day31---组件的嵌套
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>组件的嵌套</title>
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<!--
   几个注意点
  一:关于组件名
    1.一个单词组成
        第一种写法(首字母小写):school
        第二种写法(首字母大写):School
    2.多个单词组成
        第一种写法(Kebab-case命名):my-school 需要加‘’
        第二种写法(CameCase命名):MySchool(需要Vue脚手架支持)
    备注
        (1).组件名尽可能回避HTML中已有的元素名称 例如h2 H2 等
        (2).可以使用name配置项指定组件再开发者工具中呈现的名字
二: 关于组件标签
        第一种写法:<school></school>
        第二种写法:<school/>
        备注:不使用脚手架时,<school/>会导致后续组件不能渲染  不使用脚手架时,重复多个<school/>只会展示一个
三:一个简写的形式
    const school=Vue.extend(options) 简写为const school = options
-->
    <div id="root">
      <!--第一种-->
      <!-- <app></app> -->
    </div>
    <script type="text/javascript">
      const student = Vue.extend({
        template: `
        <div>
          <h2>学生姓名{{studentName}}</h2>
          <h2>学生年龄{{age}}</h2>
        </div>
        `,
        data() {
          return {
            studentName: "smy",
            age: 18,
          };
        },
      });
      //创建组件
      const school = Vue.extend({
        template: `
        <div>
          <h2>学校名称{{schoolName}}</h2>
          <h2>学校地址{{address}}</h2>
          <student></student>
        </div>
        `,
        data() {
          return {
            schoolName: "洛阳理工",
            address: "洛阳",
          };
        },
        components: {
          student,
        },
      });
      const hello = Vue.extend({
        template: `
        <div>
        <h1>你好{{name}}</h1>  
        </div>
        `,
        data() {
          return {
            name: "smy",
          };
        },
      });
      const app = Vue.extend({
        template: `
        <div>
          <school></school>
          <hello></hello>
        </div>
        `,
        components: {
          school,
          hello,
        },
      });
      new Vue({
        el: "#root",
        //div 里面全部没有了
        template: `
        <app></app>
        `,
        data: {
          name: "smy",
        },
        //注册组件
        components: {
          app,
        },
      });
    </script>
  </body>
</html>
                    
                
                
            
        
浙公网安备 33010602011771号