VUE中实现点击展开、收缩查看更多的效果 并封装单独组件

<div class="labelBox">
  <p class="lf">物流跟踪:</p>
  <div class="rg">
    <p v-for="(item, i) in activeLogisticsList" :key="i">
      <span v-if="logisticsFold ? i + 1 : i < 4"
        >{{ item.time || '--' }} {{
          item.status || '--'
        }}</span
      >
    </p>
    <div
      v-if="activeLogisticsList.length > 4"
      v-on:click="changeLogisticsState"
    >
      <span>{{ logisticsFold ? '收起' : '展开' }}</span>
    </div>
  </div>
</div>

js部分

data() {
   return {
     logisticsFold: false
   }
}


changeLogisticsState() {
  this.logisticsFold = !this.logisticsFold
}

效果预览
2024-09-07T15:02:18.png

以上为原理部分,下面是我封装的一个简单组件

<template>
  <div class="TInfo">
    <div v-if="title !== ''" class="bt">{{title}}</div>
    <div v-show="isExpanded">
      <slot></slot>
    </div>
    <div style="text-align: center;width: 100%;clear: both">
      <el-button type="text" @click="toggleExpand">
        {{ isExpanded ? '隐藏部分信息' : '展开详细信息' }}
        <i :class="'el-icon-arrow-' + (isExpanded ? 'up' : 'down')"></i>
      </el-button>
    </div>
  </div>
</template>

<script>
export default {
  name: "TInfo",
  props: {
    initialExpanded: {
      type: Boolean,
      default: false
    },
    title:{
      type: String,
      default: ''
    }
  },
  data() {
    return {
      isExpanded: this.initialExpanded
    };
  },
  methods: {
    toggleExpand() {
      this.isExpanded = !this.isExpanded;
    }
  }
};
</script>

调用方式

<t-info>
 这是隐藏部分的内容
</t-info>

标签: VUE, Javascript

相关文章

在JavaScript或Vue中屏蔽所有报错信息

在 JavaScript 或 Vue 中,如果你想屏蔽所有 JavaScript 报错,可以通过捕获全局的错误事件来实现。需要注意的是,尽量避免屏蔽所有错误,因为这可能会掩盖一些实际问题,影响调...

浏览器的开发工具中有个jsContext是什么

什么是 jsContext?在JavaScript中,jsContext 并不是一个官方的术语或概念。通常情况下,开发者可能会提到 context 这个词,它通常指的是执行上下文(Executi...

在HTML中为 h1-h6 标签添加序号及颜色背景色块

在HTML结构中,h1 到 h6 是常见的标题标签,通常我们会希望对这些标题进行标注或编号,使其更具层次感。在这篇文章中,我将向您展示如何通过纯JavaScript自动为 h1 到 h6 标签添...

JAVA+VUE的多国语言跨境电商外贸商城源码

多语言跨境电商外贸商城TikTok内嵌商城,商家入驻、一键铺货、一键提货 全开源完美运营海外版抖音TikTok商城系统源码,TikToK内嵌商城,跨境商城系统源码接在tiktok里面的商城。ti...

VUE倒计时组件

常用于发送短信、邮件后1分钟倒计时,倒计时结束后又可以再次点击vue组件封装:<template> <div class="timer-btn">...

图片Base64编码

CSR生成

图片无损放大

图片占位符

Excel拆分文件