Home > Web Front-end > JS Tutorial > body text

A brief introduction and example analysis of global registration and local registration in vue.js components

不言
Release: 2018-08-11 16:15:53
Original
1798 people have browsed it

This article brings you a brief introduction and example analysis of global registration and local registration in vue.js components. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. help.

1. Global registration instance (the following is the code according to the example on the official website)

  <div id="app">
     <com-btn></com-btn>
     <com-btn></com-btn>
 </div>
Copy after login
<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>
Copy after login

When we register a component, we need to give it a name such as com-btn. From the above code we You can see that the component name

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

is the first parameter of the component com-btn we registered. This component is globally registered. After they are registered, we can use it in any newly created vue root instance. (new Vue) inside.

It is worth noting that all components must be written in front of the root instance to take effect.

2 Instances of local ancestors

<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>
Copy after login

The advantage of local registration is that when you use In a build system like webpack, if a component is registered using global registration, then when you don't use a certain component, it will still exist in the final build result, which adds unnecessary js download.

So we can register the component through a simple js object

var ComponentA = { /* ... */ }
Copy after login

When you need to use this component, you only need to call this defined component in your root instance. Can.

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

It is worth noting that the attribute name of the root instance is components, don’t forget s. The other properties in the component are the same as those of the instance but data must be a function.

For each attribute in the components object, it is the name of the custom component, and the attribute value is the option object of this component.

Partially registered components are not available in their subcomponents. If you want componentA to be available in componentB, you need to write it like this:

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

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

Related recommendations:

Detailed explanation of vue global registration and local registration

vue component registration form

The above is the detailed content of A brief introduction and example analysis of global registration and local registration in vue.js components. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template