This time I will show you how to use vue components in practical projects, and what are the precautions for using vue components in practical projects. The following is a practical case, let's take a look.
1. Recursive component
#The component can call itself recursively in its template, just set the name option to the component. .
The example is as follows:
<p id="app19"> <my-component19 :count="1"></my-component19> </p> Vue.component('my-component19',{ name: 'my-component19', //其实当你利用 Vue.component 全局注册了一个组件,全局的ID会被自动设置为组件的name。 props: { count: { type: Number, default: 1 } }, template: '<p><my-component19 :count="count+1" v-if="count<3"></my-component19></p>' }); var app19 = new Vue({ el: '#app19' });
The rendering result is:
<p id="app19"> <p> <p> <p><!----></p> </p> </p> </p>
After setting the name, it can be used recursively in the component template. However, it should be noted that a Condition to limit the number of recursions, otherwise an error will be thrown: max stack size exceeded .
The recursive use of components can be used to develop some independent components with unknown hierarchical relationships, such as cascading selectors and tree controls.
2. Inline template
The template of the component is generally defined in the template option. Vue provides an inline template. Function, when using a component, use the inline-template attribute for the component tag, and the component will treat its content as a template instead of distributing it as content, which makes the template more flexible.
Examples are as follows:
<p id="app20"> <my-component20 inline-template> <p> <h3>在父组件中定义子组件的模板</h3> <p>{{msg}}</p> </p> </my-component20> </p> Vue.component('my-component20',{ data: function(){ return { msg: '在子组件声明的数据' } } }); var app20 = new Vue({ el: '#app20' });
3. Dynamic component
Vue.js provides a special element
Examples are as follows: , it's time to consider performance issues, because loading all components at the beginning is unnecessary overhead.
Fortunately, Vue.js allows you to define a component as a factory function and dynamically parse the component. Vue. Only triggers the factory function when the component needs to be rendered, and caches the results for subsequent re-rendering. <p id="app21">
<component :is="currentView"></component>
<button @click="changeView('A')">切换到A</button>
<button @click="changeView('B')">切换到B</button>
<button @click="changeView('C')">切换到C</button>
</p>
var app21 = new Vue({
el: '#app21',
data: {
currentView: 'comA'
},
methods: {
changeView: function(data){
this.currentView = 'com'+ data //动态地改变currentView的值就可以动态挂载组件了。
}
},
components: {
comA: {
template: '<p>组件A</p>'
},
comB: {
template: '<p>组件B</p>'
},
comC: {
template: '<p>组件C</p>'
}
}
});
What are the loop traversal instructions in vue
How to use the Angular data binding mechanism
The above is the detailed content of How to use vue components in practical projects. For more information, please follow other related articles on the PHP Chinese website!