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 RadioButtonList获取选中值
Apr 09 Javascript
jQuery中绑定事件的命名空间详解
Apr 05 Javascript
查看大图功能代码jquery版
Nov 05 Javascript
js光标定位文本框回车表单提交问题的解决方法
May 11 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
Jun 20 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
Dec 27 Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
ES6学习笔记之let与const用法实例分析
Jan 22 Javascript
详解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中文字符串截取方法实例总结
2014/09/30 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
JS中表单的使用小结
2014/01/11 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
Python合并字符串的3种方法
2015/05/21 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python字典与json转换的方法总结
2020/12/28 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
大学毕业后的十年规划
2014/01/07 职场文书
幼儿园开学家长寄语
2014/01/19 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python
常用的Python代码调试工具总结
2021/06/23 Python
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫