首頁 >web前端 >js教程 >vue.js元件中全域註冊和局部註冊的簡單介紹以及實例分析

vue.js元件中全域註冊和局部註冊的簡單介紹以及實例分析

不言
不言原創
2018-08-11 16:15:531829瀏覽

這篇文章帶給大家的內容是關於vue.js元件中全域註冊和局部註冊的簡單介紹以及實例分析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

1、全域註冊實例(按照官網的例子下面是代碼)

  <div id="app">
     <com-btn></com-btn>
     <com-btn></com-btn>
 </div>
<script>
        Vue.component(&#39;com-btn&#39;,{
            data:function(){
                return{
                    num:0,
                }
            },
            template:`<button v-on:click=&#39;change&#39;>点我{{num}}次</button>`,
            methods:{
                change:function(){
                    this.num += 1;
                }
            }
        })
       var vm = new Vue({
           el:&#39;#app&#39;,
           data:{

           },
           
       })
    </script>

我們在註冊一個元件的時候需要給他起一個名字比如com-btn,從上面的程式碼我們可以看見

Vue.component(&#39;my-component-name&#39;, { /* ... */ })

這個元件名字就是我們註冊的這個元件com-btn的第一個參數.這個元件就是全域註冊的,在他們註冊之後,我們可以用在任何新建立的vue根實例(new Vue)裡面。

值得注意的是所有元件必須寫在根實例的前面才會生效,

2局部祖冊的實例

<script>
        var childcom ={
            data:function(){
                return{
                    num:0,
                }
            },
            template:`<button v-on:click=&#39;change&#39;>点我{{num}}次</button>`,
            methods:{
                change:function(){
                    this.num += 1;
                }
            }
        }
       var vm = new Vue({
           el:&#39;#app&#39;,
           data:{

           },
           components:{
               &#39;com-btn&#39;:childcom,//调用这个组件
           }
       })
    </script>

局部註冊的好處就是當你使用的是webpack這樣的建構系統時,如果是用全域註冊的這種方法註冊的元件,那麼當你不使用某一個元件的時候,它仍然會存在最終的建構結果之中,這就增加的無謂的js下載。

所以我們可以透過一個簡單的js物件來註冊元件

var ComponentA = { /* ... */ }

在需要使用這個元件時, 你只需要在你的你的根實例裡面去呼叫這個定義的元件即可。

new Vue({
  el: &#39;#app&#39;
  components: {
    &#39;component-a&#39;: ComponentA,
    &#39;component-b&#39;: ComponentB
  }
})

值得注意的是根實例的屬性名字是components,千萬不要忘記s。元件中的其他屬性和實例的一樣但是data必須是一個函數。

對於components物件中的每個的屬性來說就是自訂元件的名字,屬性值就是這個元件的選項物件。

局部註冊的元件在其子元件中是不可用的,如果你希望componentA在componentB中可以使用那你需要下面這樣寫法:

var ComponentA = { /* ... */ }

var ComponentB = {
  components: {
    &#39;component-a&#39;: ComponentA
  },
  // ...
}

 相關推薦:

vue全域註冊和局部註冊使用詳解

vue元件註冊表單

以上是vue.js元件中全域註冊和局部註冊的簡單介紹以及實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn