Vue教程38--组件详解(二)

65 阅读1分钟

全局组件和局部组件

  • 当我们通过调用Vue.component()注册组件时,组件的注册是全局的

    • 这意味着该组件可以在任意Vue示例下使用
    • image-20210821171133365.png
  • 如果我们注册的组件是挂载在某个实例中, 那么就是一个局部组件

    • image-20210821171242295.png

全局组件

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 ​
 <div id="app">
     <!--3.组件的使用-->
     <my_cpn></my_cpn>
 </div>
 ​
 <div id="app1">
     <!--3.组件的使用-->
     <my_cpn></my_cpn>
 </div>
 ​
 <script src="../vue.js"></script>
 ​
 <script>
     //ES6的``的部分是可换行字符串
 ​
 ​
     //1.创建组件构造器对象
     const cpnC = Vue.extend({
         template:`
             <div>
                 <h2>我是标题</h2>
                 <p>我是内容 哈哈哈哈哈</p>
                 <p>我是内容2 呵呵呵呵呵呵呵呵</p>
             </div>`
     })
 ​
 ​
     //2.注册组件(这个地方我们注册的是全局组件,意味着可以在多个Vue的实例下面使用)
     //组件的名称,我们如何引用这个组件
     Vue.component("my_cpn",cpnC)
 ​
 ​
     const app = new Vue({
         el:"#app",
         data:{
             message:"hello world"
         }
     })
 ​
     const app1 = new Vue({
         el:"#app1",
         data:{
             message:"hello world"
         }
     })
 </script>
 </body>
 </html>

局部组件

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 ​
 <div id="app">
     <h2>这是app组件</h2>
     <cpn></cpn>
 </div>
 ​
 <div id="app1">
     <h2>这是app1组件</h2>
     <!--3.组件的使用-->
     <cpn></cpn>
 </div>
 ​
 <script src="../vue.js"></script>
 ​
 <script>
     //ES6的``的部分是可换行字符串
 ​
 ​
     //1.创建组件构造器对象
     const cpnC = Vue.extend({
         template:`
             <div>
                 <h2>我是标题</h2>
                 <p>我是内容 哈哈哈哈哈</p>
                 <p>我是内容2 呵呵呵呵呵呵呵呵</p>
             </div>`
     })
 ​
     const app = new Vue({
         el:"#app",
         components:{
             //2.在vue的实例里面进行
             cpn:cpnC
         }
     })
 ​
     const app1 = new Vue({
         el:"#app1",
 ​
     })
 </script>
 </body>
 </html>

效果如图所示:(组件只会在app中可以使用)

企业微信截图_20210821170826.png