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


Posted in Javascript onSeptember 02, 2018

说说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组件(全局,局部,动态加载组件)实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
JavaScript入门教程(9) Document文档对象
Jan 31 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
Feb 13 Javascript
酷炫jQuery全屏3D焦点图动画效果
Mar 22 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
微信小程序 扎金花简单实例
Feb 21 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
Apr 27 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 Javascript
原生js实现俄罗斯方块
Oct 20 Javascript
微信小程序基础教程之echart的使用
Jun 01 Javascript
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
详解jQuery中的easyui
Sep 02 #jQuery
vue-cli脚手架的安装教程图解
Sep 02 #Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
Sep 02 #Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 #Javascript
解决Vue 项目打包后favicon无法正常显示的问题
Sep 01 #Javascript
修改vue+webpack run build的路径方法
Sep 01 #Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 #Javascript
You might like
php获取操作系统语言代码
2013/11/04 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
django 将model转换为字典的方法示例
2018/10/16 Python
Flask框架web开发之零基础入门
2018/12/10 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
家长通知书家长意见
2014/12/30 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
反邪教学习心得体会
2016/01/15 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
Nginx配置根据url参数重定向
2022/04/11 Servers