可复用的显示隐藏按钮组件

先上效果图
在这里插入图片描述在这里插入图片描述

子组件代码1

<template  >
    <transition name="slide-fade">
      <div v-show="show"> //是否显示隐藏
        <slot></slot>  //使用插槽
      </div>
    </transition>
</template>
<script>
export default {
  data() {
    return {
      show: false
    };
  },
  methods: {
    showss() {
      let than = this;
      than.show = !than.show;
    }
  }
};
</script>
<style scoped>
.slide-fade-enter-active {
  transition: all 1s ease;
}
.slide-fade-leave-active {
  transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to
/* .slide-fade-leave-active for below version 2.1.8 */ {
  transform: translateX(10px);
  opacity: 0;
}
</style>

子组件代码2

<template  >
  <div>
      <f-button v-if="show" icon="unfold" @click="handleClick(false)" :icon-size="14">更多</f-button>
      <f-button v-else icon="packup" @click="handleClick(true)" :icon-size="14">收起</f-button>
  </div>
</template>
<script>
export default {
  data() {
    return {
      show: true
    };
  },
  methods: {
    handleClick(state) {
        this.show = state;
        this.$emit("click")
      }
  }
};
</script>

父组件

//html代码
			<t-button @click="control(selectRow)">1</t-button>
            <t-button  @click="track(selectRow)">2</t-button>
            <t-button  @click="customcode(selectRow)">3</t-button>
            <t-button @click="remark(selectRow)">4</t-button>
            <t-button  @click="handleOne(selectRow)">5</t-button>
         <button-show ref="btshow">
            <t-button  @click="handleTwo(selectRow)">6</t-button>
            <t-button  @click="handleThree(selectRow)">7</t-button>
            <t-button  @click="handleFour(selectRow)">8</t-button>
            <t-button @click="chongdian(selectRow)" type="warning" class="one">9</t-button>
            <t-button @click="chongdian(selectRow)" type="warning class="one oneBtn">10</t-button>
            <t-button  @click="fangdian(selectRow)" type="warning" class="two" >11</t-button>
            <t-button @click="fangdian(selectRow)" type="warning" class="two oneBtn">12</t-button>
            <t-button @click="Locate(selectRow)" type="warning" >13</t-button> 
          </button-show>
          <div style="text-align:center"><gen-duo @click="genduo()"></gen-duo></div>

//js代码
	<script>
		import ButtonShow from "@/components/ButtonShow/index";
		import GenDuo from "@/components/ButtonShow/Genduo";
		export default {
		components: {ButtonShow,GenDuo},
		 data() {
   			 return {}
   			 },
		  methods: {
   		   genduo(){
   	  	   this.$refs.btshow.showss()
   		 },
	 }
}
	</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值