当前位置: 首页 > article >正文

页面内Tab切换-工程问题

组件之间的引用

导入组件
import voiceComponent from '@/views/voice/voice/index.vue'

在 Vue 3 中也推荐使用 defineComponent 来明确声明一个组件。

import {defineComponent} from "vue";
defineComponent(() => {
  components:{
    voiceComponent
  }
})

工程需求

解决方案

```plain

<el-tabs> 是 Element Plus 提供的标签页容器组件,用于在同一个区域内切换显示不同的内容面板。

@tab-click="handleTableClick"

  • 作用:监听标签页点击事件,当用户点击标签页时触发指定的方法。
  • 解释handleTableClick 是在组件方法中定义的函数,用于处理标签页点击后的逻辑。

<el-tab-pane><el-tabs> 的子组件,用于定义每个标签页的内容 。

  • label="总的声纹样本库"
  • 作用:定义标签页的标题,会显示在标签栏上。
  • 解释label 可以是字符串或插槽内容,用于设置标签页的显示名称。
  • name="1"
  • 作用:为每个标签页指定一个唯一标识符,用于 v-model 绑定和事件处理。
  • 解释name 必须唯一,用于控制哪个标签页被激活。

每个 <el-tab-pane> 中可以包含任意内容,包括其他组件、HTML 元素等。在你的代码中:

在这个里面导入其他的组件,这样简化了一个vue文件里面的代码,较为方便。

const handleTableClick = (tab) => {
  console.log(tab.props.name)  //对应上面的name的值
  showIndex.value = tab.props.name;
}

但是存在了一个问题,每一个页面都是很复杂的,页面无法加载,这边就进行异步加载。

使用defineAsyncComponent

import {defineAsyncComponent} from "vue";

const voiceComponent = defineAsyncComponent(() => import('@/views/voice/template/voice_raw_template.vue'));

通过v-if 来控制组件的生成,v-if为true来去生成。

<el-tab-pane label="历史生成的声纹样本" name="2">
  <div v-if="isVoiceComponentLoaded">
    <voice-component></voice-component>
  </div>
</el-tab-pane>
const isVoiceComponentLoaded = ref(false);

const handleTableClick = (tab) => {
  console.log(tab.props.name)
  showIndex.value = tab.props.name;
  if (tab.props.name == "2") {
    isVoiceComponentLoaded.value = true;
  }
}

http://www.kler.cn/a/374276.html

相关文章:

  • 在pycharm中使用sqllite
  • vue自定义组件实现v-model双向数据绑定
  • 17. 云计算和分布式计算
  • vue插件清除 所有console.log()
  • 新需求编码如何注意低级错误代码
  • 记一次:使用使用Dbeaver连接Clickhouse
  • iptables限制docker端口禁止某台主机访问(使用DOCKER链和raw表的PREROUTING链)
  • ubuntu用户账号相关操作
  • SpringBoot节奏:Web音乐网站构建手册
  • 给 Docker 配置网络代理
  • 【2024工业图像异常检测文献】SuperSimpleNet: 统一无监督和监督式学习检测快速可靠的表面缺陷检测方法
  • 来了解一下!!!——React
  • PlantUML绘制C++类图
  • 提示工程(Prompt Engineering)指南(进阶篇)
  • 09 go语言(golang) - 数据类型:哈希表(map)及原理(一)
  • Transformer的Pytorch实现【1】
  • 无人机避障——2D栅格地图pgm格式文件路径规划代码详解
  • openGauss开源数据库实战十二
  • Rust 错误处理库: thiserror 和 anyerror
  • 使用 flex 简单实现 table 自适应页面
  • Puppeteer点击系统:解锁百度流量点击率提升的解决案例
  • 函数声明不是原型error: function declaration isn’t a prototype
  • Spearman相关系数和P值计算的MATLAB代码
  • QT MVC 架构
  • vue系列=模板语法
  • 数据建模圣经|数据模型资源手册卷1,探索数据建模之路