element-ui tabs无限加载

<div style="margin-bottom: 20px;">
      <el-button size="small" @click="addTab()">
        add tab
      </el-button>
    </div>
    <el-tabs v-model="activeName" @tab-click="handleClick" closable  @tab-remove="removeTab">
      <el-tab-pane v-for="item in tabs" :key="item.name" :label="item.title" :name="item.name"></el-tab-pane>
    </el-tabs>
    <component :is="componentName" :ref="item.name" :componentData="item.componentData"></component>
<script>
import home from './home'
import onepage from './onepage'

export default {
	components: {
		home,
		onepage 
	},
	data() {
		return {
			tabs: [
				{
					label: 'tab1',
					name: 'home'
				}
			],
			activeName: 'home',
			componentName: 'home',
			tabIndex: 0
		}
	},
	methods: {
		// 切换tab时
		handleClick(tab, event) {
			if (tab.name.indexOf('onepage') !== -1) {
				this.componentName = tab.name
			} else {
				this.componentName = 'home'
			}
		},
		// 添加tab
		addTab() {
			let newTabName = ++this.tabIndex
			this.editableTabs.push({
          		title: newTabName  + 'New Tab',
          		name: newTabName + 'onepage',
          		// 要传递的数据
          		componentData: {}
        	})
        	this.componentName = 'onepage'
        	this.activeName = newTabName + 'onepage'
		},
		// 关闭tab
		removeTab(targetName) {
			let tabs = this.tabs
			let activeName = this.activeName
			if (activeName === targetName) {
				tabs.forEach((tab, index) => {
					if (tab.name === targetName) {
						let nextTab = tabs[index + 1] || tabs[index - 1]
						if(nextTab) {
							activeName = nextTab.name
						}
					}
				})
			}
			this.activeName = activeName
			if (tab.name.indexOf('onepage') !== -1) {
				this.componentName = tab.name
			} else {
				this.componentName = 'home'
			}
			this.tabs = tabs.filter(tab => tab.name !== targetName)
		}
	}
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用Vue-cli5创建Vue2项目并使用Element-UI时,在使用electron-builder打包构建之后可能会出现element-ui的样式丢失,找不到fonts目录的问题。[3]为解决这个问题,可以通过修改样式文件来恢复element-ui的字体样式。如果使用原生的CSS样式,可以使用CSS深度选择器来修改字体样式。例如,可以使用 >>> .el-tabs__item-text 来选择需要的字体样式。 如果使用了预处理器SCSS,可以使用::v-deep或/deep/来修改样式。::v-deep是官方推荐的用法,兼容性更好且加载速度更快。例如,可以使用.detail ::v-deep .el-tabs__item-text 来修改字体样式。 通过这些方法,可以重新指定element-ui的字体样式,解决样式丢失的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【前端】修改acro element UI等封装元素的样式、字体](https://blog.csdn.net/Supporint/article/details/128697371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue-cli5打包后element-ui的样式丢失、字体图标不显示](https://blog.csdn.net/Lsucre/article/details/128419049)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值