欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue组件(全局,局部,动态加载组件)

程序员文章站 2023-12-03 18:02:10
说说vue.js组件 什么是组件:组件是vue.js最强大的功能之一。组件可以扩展html元素,封装可重用的代码。在较高层面上,组件是自定义的元素,vue.js的编译器...

说说vue.js组件

什么是组件:组件是vue.js最强大的功能之一。组件可以扩展html元素,封装可重用的代码。在较高层面上,组件是自定义的元素,vue.js的编译器为它添加特殊功能。在有些情况下,组件也可以是原生html元素的形式,以is特性扩展。

vue组件有两种,一种是全局组件,一种是局部组件。整个项目经常用到的用全局写法,用到比较少的专供特定页面用的使用局部组件。

one----全局组件引入写法:在项目的main.js中:

第一种,在main.js直接写template:' 模版字符串'

vue.component('tab-home', { template: `<div>home component</div>`
})
vue.component('tab-posts', { template: `<div>posts component</div>`
})
vue.component('tab-archive', { template: `<div>archive component</div>`
})

第二种,分别写tab-home.vue tab-posts'.vue tab-archive'.vue然后import tabhome from ‘ tab-home.vue '

 vue.use( tabhome); // 自定义全局组件的时候需要vue.use();
  vue.component('tab-home', tabhome)); //初始化组件
two ----局部组件引入 ,写在需要的引入的组件,如helloworld
import tabaa from './tab-aa.vue'
import tabbb from './tab-bb.vue'
import tabcc from './tab-cc.vue'
export default {
name: 'helloworld',
components:{tabaa,tabbb,tabcc},
three----动态组件(tab切换 使用:is="currenttabcomponent")
<template>
<>
<button
v-for="tab in tabs"
v-bind:key="tab"
v-bind:class="['tab-button', { active: currenttab === tab }]"
v-on:click="currenttab = tab"
>{{ tab }}</button>
<component
v-bind:is="currenttabcomponent"
class="tab"
></component>
</div>
</template>
export default {
name: 'helloworld',
components:{tabaa,tabbb,tabcc},
data () {
return {
currenttab: 'home',
tabs: ['home', 'posts', 'archive','aa','bb','cc'],
logintype:'username',
msg: 'welcome to your vue.js app'
}
},
computed: {
currenttabcomponent: function () {
return 'tab-'+this.currenttab.tolowercase()
}
},
样式:
.tab-button {
padding: 6px 10px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border: 1px solid #ccc;
cursor: pointer;
background: #f0f0f0;
margin-bottom: -1px;
margin-right: -1px;
}
.tab-button:hover {
background: #e0e0e0;
}
.tab-button.active {
background: #e0e0e0;
}
.tab {
border: 1px solid #ccc;
padding: 10px;
}

总结

以上所述是小编给大家介绍的vue组件(全局,局部,动态加载组件)实例详解,希望对大家有所帮助