语法:

    1. 创建全局组件
    2. 使用全局组件

    使用全局组件不需要挂载

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
    7. <title>Document</title>
    8. </head>
    9. <body>
    10. <div id="app">
    11. <!-- 3.使用子组件 -->
    12. <App></App>
    13. </div>
    14. <script src="./vue.js"></script>
    15. <script>
    16. // App组件 html+css+js
    17. // 创建全局组件 第一个是组件名 第二个是配置
    18. // 只要创建全局组件 可以在任意地方使用 (template)
    19. Vue.component('Vheader', {
    20. template: `
    21. <div>
    22. 我是导航组件
    23. </div>
    24. `
    25. })
    26. Vue.component('Vaside', {
    27. template: `
    28. <div>
    29. 我是侧边栏
    30. </div>
    31. `
    32. })
    33. const Vbtn = {
    34. template:`
    35. <button>按钮</button>
    36. `
    37. }
    38. const Vcontent = {
    39. data() {
    40. return {
    41. }
    42. },
    43. template: `
    44. <div>
    45. 我是内容组件
    46. <Vbtn></Vbtn>
    47. <Vbtn></Vbtn>
    48. <Vbtn></Vbtn>
    49. <Vbtn></Vbtn>
    50. </div>
    51. `,
    52. components:{
    53. Vbtn
    54. }
    55. }
    56. // 使用局部组件的打油诗: 建子 挂子 用子
    57. // 1.创建组件
    58. // 注意:在组件中这个data必须是一个函数,返回一个对象
    59. const App = {
    60. data() {
    61. return {
    62. msg: '我是App组件'
    63. }
    64. },
    65. components: {
    66. Vcontent
    67. },
    68. template: `
    69. <div>
    70. <Vheader></Vheader>
    71. <div>
    72. <Vaside />
    73. <Vcontent />
    74. </div>
    75. </div>
    76. `,
    77. methods: {
    78. handleClick() {
    79. this.msg = '学习局部组件';
    80. }
    81. },
    82. computed: {
    83. }
    84. }
    85. new Vue({
    86. el: '#app',
    87. data: {
    88. },
    89. components: {
    90. // 2.挂载子组件
    91. App
    92. }
    93. })
    94. </script>
    95. </body>
    96. </html>