当前位置:首页 > 科技数码

tabs iviewUI-Tabs选项卡切换组件

总结

制表符切换组件,通常用于在水平区域存储和显示大块内容。

源代码地址:https://github.com/iview/iview/tree/2.0/src/components/tabs

使用:

& lt模板>。

& ltTabs name = " first " & gt。

& lttab pane label = " MacOS " icon = " logo-apple " tab = " first " >

& ltTabs name = " second " >

& lttab panel Abel = " MacOS " icon = " logo-apple " tab = " second " >标签1的内容

& lt标签面板标签= "窗口"图标= "徽标-窗口"标签= "第二个" >;标签2的内容

& lttab panel Abel = " Linux " icon = " logo-tux " tab = " second " >标签3的内容

& lt/tab >

& lt/TabPane>。

& lttab pane label = " Windows " icon = " logo-Windows " tab = " first " >;标签2的内容

& lt/tab >

& lt/template>。

源代码的tab文件下有三个文件:index.js,tabs.vue,pane.vue。

index.js中引入了Tabs.vue和pane.vue

从“”导入选项卡。/tab . vue ';

从“”导入窗格。/pane . vue ';

标签。窗格=窗格;

导出默认选项卡;

tabs.vue

Tabs.vue是整个组件的容器,分为三个部分:

1通过

2通过这个获得标签下的每个标签面板。$children,将其放入导航列表,并遍历导航列表来设置选项卡选项标签。

3声明slot接收整个窗格。

这个。$children可以搜索当前组件的直接子组件,并遍历所有子组件。需要注意的是$children不保证订单,不响应。

插槽插槽

父模板中的所有内容都在父范围内编译;子模板中的所有内容都在子范围中编译。插槽分发的内容的范围在父组件上

& lt模板>。

& ltdiv:class = " class " >

& ltdiv:class = "[prefixCls+'-bar ']" & gt;

& ltdiv:class = "[prefixCls+'-nav-right ']" v-if = " show slot " & gt;& ltslotname="extra ">。& lt/slot>。& lt/div>。

& lt差异

:class = "[prefixCls+'-nav-container ']"

tabindex="0 "

ref="navContainer "

@ keydown = " handleTabKeyNavigation "

@ keydown . space . prevent = " handleTabKeyboardSelect(false)"

>。

& ltdiv ref = " navWrap ":class = "[prefixCls+'-navWrap ',可滚动?prefixCls+'-nav-scroll ':']" & gt;

& ltspan:class = "[prefixCls+'-nav-prev ',可滚动?':prefixCls+'-nav-scroll-disabled ']" @ click = " scroll prev " & gt;& ltIcontype="ios-arrow-back " >& lt/Icon >& lt/span>。

& ltspan:class = "[prefixCls+'-nav-next ',可滚动?':prefixCls+'-nav-scroll-disabled ']" @ click = " scrollenext " & gt;& lticon type = " IOs-arrow-forward " & gt。& lt/Icon >& lt/span>。

& ltdiv ref = " nav scroll ":class = "[prefixCls+'-nav-scroll ']" & gt;

& ltdiv ref = " nav ":class = "[prefixCls+'-nav ']":style = " nav style " & gt。

& ltdi :style="barStyle " >& lt/div>。

& ltdi v-for= "(项,索引)在navList"@click="handleChange(索引)" >中;

& ltIconv-if="item.icon!== ''" :type="item.icon">。& lt/Icon >

& ltrender v-if = " item . label TYPe = = ' function ' ":render = " item . label " & gt。& lt/Render >

& lttemplatev-else>。{ { item.label } } & lt/template>。

& lticon:class = "[prefixCls+'-close ']" v-if = " show close(item)":type = " arrowType ":custom = "习惯行类型":size = " arrowSiZe " @ click . native . stop = " handle remove(index)" & gt;& lt/Icon >

& lt/div>。

& lt/div>。

& lt/div>。

& lt/div>。

& lt/div>。

& lt/div>。

& ltdiv:CLaSS = " ContentCLaSS ":style = " ContentSTYLe " ref = " panes " >& lt插槽>。& lt/slot>。& lt/div>。

& lt/div>。

& lt/template>。

pane.vue

pane文件的主要功能是接收来自父组件的传入名称、标签、图标、禁用、可关闭、标签、索引参数和注入:[' TabsinInstance '],从而获取父组件的这个引用,以便在参数销毁时调用父组件的updateNav更新每个标签。

提供/注入

vue中不同组件的通信方式如下:

1.父子组件,通过prop

2.非父子组件,通过vuex或根vue加载器

这通常是以上两种情况,但是还有一种特殊情况,就是孙子组件或者更深层次的组件通信

为什么不用vuex,省事????

为此引入了很多vuex,这将导致代码的低性价比。没有必要在项目本身中使用vuex

1.provide相当于增强的父组件prop

2.inject相当于增强子组件的道具

劣势

这样做有明显的弊端。很难跟踪数据,因为它可以在任何级别访问。因此,通常不建议使用该属性。Vuex可以和vuex一起使用,但是在开发构件库的时候,并不依赖于vuex,在不知道用户使用环境的情况下也可以很好的使用

& lt模板>。

& ltdiv:class = " prefixCls " v-show = " show ":style = " Content STYLe " >& lt插槽>。& lt/slot>。& lt/div>。

& lt/template>。

& lt>。

const prefixCls = ' ivu-tab-tab pane ';

导出默认值{

名称:“TabPane”,

注入:[' TabsinInstance '],

道具:{

名称:{

类型:字符串

},

标签:{

类型:[字符串,函数],

默认值:“”

},

图标:{

类型:字符串

},

禁用:{

类型:布尔值,

默认值:false

},

可关闭:{

类型:布尔值,

默认值:null

},

//当制表符嵌套时,使用制表符来区分层次结构,并指向相应制表符的名称

标签:{

类型:字符串

},

//当TabPane使用v-if时,不会提前渲染。此时,可以设置索引并从小到大排序

//该值必须大于0

索引:{

类型:数字

}

},

数据{

返回{

前缀前缀:前缀前缀,

show: true,

当前名称:this.name

};

},

计算:{

contentStyle {

返回{

能见度:这个。TabsInstance.activeKey!== this.currentName?隐藏':'可见'

};

}

},

方法:{

updateNav {

这个。tab sininstance . updateNav;

}

},

手表:{

名称(val) {

this.currentName = val

this.updateNav

},

标签{

this.updateNav

},

图标{

this.updateNav

},

禁用{

this.updateNav

}

},

已安装{

this.updateNav

},

已销毁{

this.updateNav

}

};

& lt/>。

1.《tabs iviewUI-Tabs选项卡切换组件》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《tabs iviewUI-Tabs选项卡切换组件》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1090012.html

上一篇

俄客机迫降视频曝光 事情经过真相揭秘!

下一篇

一点就到家免费观看完整版电影 手机版高清资源泄露

东莞标签 重磅!人工智能将成为东莞产业新标签

东莞标签 重磅!人工智能将成为东莞产业新标签

9月10日,市政府常务会议审议通过 东莞新一代人工智能发展规划 (以下简称“发展规划”), 提议完全融入粤港澳大湾区 以及广深港澳科技创新走廊的发展模式, 围绕人工智能硬件, 全面实施“智能核心”战略, 全面推进东莞发展成 全球人工智能产业的重要一极。  其中,城市将于2025年形成 一个具...

李宁把新疆棉写标签上 发生了什么?始末回顾

李宁把新疆棉写标签上 发生了什么?始末回顾

  25日消息,“李宁把新疆棉写标签上”引网上关注。消息称,耐克被曝发布抵制新疆棉声明!BCI风波持续发酵:安踏宣布退群,国产品牌李宁发声称,将新疆棉写在标签上。  25日报道,...

李宁称从未加入BCI 一直使用新疆棉花 标签上的小细节网友点赞

  • 李宁称从未加入BCI 一直使用新疆棉花 标签上的小细节网友点赞
  • 李宁称从未加入BCI 一直使用新疆棉花 标签上的小细节网友点赞
  • 李宁称从未加入BCI 一直使用新疆棉花 标签上的小细节网友点赞

glimpse APT34核心组件Glimpse:远控复现与流量分析

  • glimpse APT34核心组件Glimpse:远控复现与流量分析
  • glimpse APT34核心组件Glimpse:远控复现与流量分析
  • glimpse APT34核心组件Glimpse:远控复现与流量分析
玻璃上的胶带痕迹怎么去除 不干胶标签纸怎么无痕撕掉?解决方法

玻璃上的胶带痕迹怎么去除 不干胶标签纸怎么无痕撕掉?解决方法

随着市场的发展,很多产品出口都带有不干胶标签纸的产品信息,所以不干胶标签的优点是很好的记录了产品信息,缺点是很难去除胶粘痕迹。它的缺点也很明显,比如如何去掉让很多人头疼的不干胶标签纸?这已经成为困扰许多消费者的问题。  根据高分子化学中的同构相容原理,自粘标签的去除方法有两种:溶解法和防粘法...

武汉地铁贴隔位而坐标签 事件的真相是什么?

  • 武汉地铁贴隔位而坐标签 事件的真相是什么?
  • 武汉地铁贴隔位而坐标签 事件的真相是什么?
  • 武汉地铁贴隔位而坐标签 事件的真相是什么?