>웹 프론트엔드 >JS 튜토리얼 >Vue.js 구성 요소 탭은 탭 전환 효과를 구현합니다.

Vue.js 구성 요소 탭은 탭 전환 효과를 구현합니다.

高洛峰
高洛峰원래의
2016-12-03 09:04:482460검색

오늘은 Xiaoying이 직접 작성한 vue 컴포넌트를 여러분과 공유하고 싶습니다. 왜냐하면 Xiaoying은 vue에 짧은 시간만 노출되었기 때문입니다. 부족한 점이 있으면 지적해 주시고 Xiaoying이 수정해 주시길 바랍니다. .탭을 구현하는 방법은 다음과 같습니다.

호출 예:

<template>
<div class="tabs-contents">
<!-- 调用tabs组件 -->
 <tabs :flag.sync=&#39;tabsShowFlag&#39; :navtitle=&#39;navTitle&#39; :navdata=&#39;navData&#39;>
 <div class="tabs-body">
 <div v-if=&#39;navData[0].showFlag>0&#39;>
 <div class="one-content">
 <p>二十国集团领导人第十一次峰会将于9月4日至5日在浙江杭州举行。峰会主题为“构建创新、活力、联动、包容的世界经济”。二 十国集团成员和嘉宾国领导人及有关国际组织负责人将应邀与会。中国国家主席将出席并主持会议,并出席金砖国家领导人非正式会晤等有关活动。二十国集团工商峰会将于9月3日至4日在浙江杭州举行。中国国家主席将出席开幕式并发表主旨演讲。部分二十国集团成员和嘉宾国领导人及有关国际组织负责人将应邀与会。 </p>
 </div>
 </div>
 <div v-if=&#39;navData[1].showFlag>0&#39;>
 <div class="two-content">
 <p>党员领导干部</p>
 <div>
  盘点历届奥运会中国乒乓球队精彩比赛瞬间。2016里约奥运会乒乓球男团半决赛,中国3-0韩国晋级,张继科遭遇韩国小将郑荣植的顽强阻击,在两度落后的情况下,苦战五局才得以3:2涉险过关。图为张继科精彩比赛瞬间。
 </div>
 </div>
 </div>
 <div v-if=&#39;navData[2].showFlag>0&#39;>
 <label class="glyphicon glyphicon-asterisk"></label>
 <span class="glyphicon glyphicon-remove"></span>
 <div class="two-content">
 <p>都说程序员有三宝:人傻,钱多,死得早。博主身边的程序“猿”一大半应了这三宝,这从侧面说明了一个问题,只有理性是过不好日子的。朋友们应该把工作与生活分开,让生活变得感性,让工作变得理性,两者相提并行,岂不快哉。咳,话题扯得有点远,今天博主给大家写一篇关于css如何设置select、radio 、 checkbox 、file样式的问题,这里不涉及模拟框,仅介绍原生情况下如何做到自定义样式,废话不多说,赖次够!</p>
 <div>
  北京时间8月16日早上,中国游泳队抵达北京,队员们一走出到达出口就被热情的粉丝们蜂拥围堵,尤其是宁泽涛、傅园慧等高人气运动员,更是寸步难行。供图:视觉中国
 </div>
 </div>
 </div>
 <div v-if=&#39;navData[3].showFlag>0&#39;>
 <div class="form-horizontal">
 <div class="form-group">
  <label class="col-sm-3 control-label"><span class=&#39;add-people-sign&#39;>*</span>姓名:</label>
  <div class="col-sm-2"><input type="text" class="form-control"></div>
 </div>
 </div>
 </div>
 </div>
 </tabs>
 
</div>
</template>
<script>
import tabs from &#39;./yezitabs.vue&#39; //引入组件
export default {
 components: {
 tabs,
 },
 ready: function() {
 },
 methods: {
 },
 data() {
 return {
 tabsShowFlag:true,
 navTitle:&#39;新闻&#39;,
 navData: [{
 key: &#39;biubiu&#39;,
 showFlag: 1,
 }, {
 key: &#39;豆豆打豆豆&#39;,
 showFlag: -1,
 }, {
 key: &#39;单身汪&#39;,
 showFlag: -1
 },{
 key: &#39;喵嘞个咪&#39;,
 showFlag: -1
 }],
 }
 },
}
</script>
<style scoped>
</style>

탭 구현:

<template>
<div class="tabs-content" v-if=&#39;flag&#39;>
 <div class="top">
 <div class="title">{{navtitle}}</div>
 <ul class="nav nav-tabs">
 <li v-for=&#39;(navindex,nav) in navdata&#39; class="nav-li" v-bind:class=&#39;{active:nav.showFlag>=0}&#39; @click=&#39;keyShowFun(navindex)&#39;>
 <a href="#">{{nav.key}}</a>
 </li>
 </ul>
 </div>
 <div class="v-tabs-item">
 <slot></slot>
 </div>
</div>
</template>
<script>
export default {
 props: {
 flag: {
 type: Boolean,
 required: true,
 twoWay: true
 },
 navtitle: {
 type: String,
 default: &#39;&#39;
 },
 navdata: {
 type: Array,
 required: true,
 },
 },
 components: {
 
 },
 ready: function() {
 
 },
 methods: {
 keyShowFun:function(index){
 let _this=this;
 _this.navdata.forEach(function(item){
 item.showFlag=-1;
 });
 _this.navdata[index].showFlag=1;
 }
 },
 data() {
 return {
 }
 },
}
</script>
<style scoped>
 
</style>

렌더링:

Vue.js 구성 요소 탭은 탭 전환 효과를 구현합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.