首页 > 编程 > JavaScript > 正文

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

2019-11-19 13:04:10
字体:
来源:转载
供稿:网友

说说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 ----局部组件引入 ,写在需要的引入的组件,如helloworldimport 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><><buttonv-for="tab in tabs"v-bind:key="tab"v-bind:class="['tab-button', { active: currentTab === tab }]"v-on:click="currentTab = tab">{{ tab }}</button><componentv-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组件(全局,局部,动态加载组件)实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表