父组件和子组件

    我们先来看以下的例子:
    我们有两个组件,一个是school,一个是student
    school组件嵌套student

    下面的例子有几个注意点:
    1.因为代码是从上往下执行,所以student 组件要在前面,school组件要在后面,因为school组件里面使用components引入了students

    2.容器中只能写,因为vm中只引入了school

    3.组件school中的template要引用

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Document</title>
    6. </head>
    7. <body>
    8. <div id="app">
    9. <school></school>
    10. </div>
    11. <script type="text/javascript" src="./vue.js"></script>
    12. <script type="text/javascript">
    13. const student = {
    14. template: `
    15. <div>
    16. {{ studentname }}
    17. </div>
    18. `,
    19. data() {
    20. return {
    21. studentname: "代亮",
    22. }
    23. },
    24. }
    25. const school = {
    26. template: `
    27. <div>
    28. {{ schoolname }}
    29. <student></student>
    30. </div>
    31. `,
    32. data() {
    33. return {
    34. schoolname: "苑庄小学",
    35. }
    36. },
    37. components: {
    38. student
    39. }
    40. }
    41. new Vue({
    42. el: "#app",
    43. components: {
    44. school
    45. }
    46. })
    47. </script>
    48. </body>
    49. </html>

    然后我们使用Vue的插件看一下

    我们可以看到如下层级结构

    image.png

    一般开发经验,我们会创建一个app组件,vm只需要管理app组件,剩下的都去嵌套管理

    当然我们还可以通过在vm中写template,而不是在容器中

        <div id="app">
            <school></school>
        </div>
         ....
            new Vue({
                el: "#app",
                components: {
                    school
                }
            })
    

    修改如下

        <div id="app">
    
        </div>
    
    ...
            new Vue({
                            template: `<school> </school>`
                el: "#app",
                components: {
                    school
                }
            })