Uncaught (in promise) Maximum recursive updates exceeded in component <ElSelectDropdown>.

1. 问题描述

在 vue3 中使用 <el-select> 出现以下错误。

<el-select v-model="registerData.country" placeholder="Select" style="width: 80px;margin-right: 3px;">
    <el-option
     v-for="item in counties"
     :key="item.value"
     :label="item.value"
     :value="item.value">
        <span style="float: left">{{ item.label }}</span>
        <span style="float: left">&nbsp;&nbsp;</span>
        <span style="float: right;color: var(--el-text-color-secondary);">
           {{ item.value }}
        </span>
  </el-optio>
</el-select>

Uncaught (in promise) Maximum recursive updates exceeded in component <ElSelectDropdown>.This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.

 2. 解决方法

https://github.com/vuejs/core/issues/11712

该问题属于 vue 的 bug,以被修复,使用 vue 3.5.2 及以上版本。

### Sass `@import` 规则废弃的原因 随着 CSS 和预处理器技术的发展,Sass 社区逐渐意识到传统 `@import` 的局限性和性能问题。传统的 `@import` 导致文件加载顺序复杂化并可能引发不必要的重复编译操作,从而影响构建效率和维护成本。 为了提高模块化的清晰度以及优化打包过程中的依赖管理机制,现代版本的 Sass 推荐采用更高效的方式引入样式资源[^1]。 ### 替代方案 #### 使用 `@use` 推荐使用 `@use` 来代替旧版的 `@import` 。这种方式不仅能够有效减少全局变量污染的风险,还支持按需导入特定功能或组件所需的样式片段: ```scss // 假设有一个名为 _variables.scss 文件定义了一些颜色常量 @use 'styles/variables'; body { background-color: variables.$primary-bg; } ``` 此方法可以确保只有真正被使用的成员才会暴露给当前作用域内,增强了代码的安全性与可读性。 #### 利用 `@forward` 对于那些希望创建库或者共享部分公共配置的情况,则可以通过 `@forward` 实现更加灵活的功能转发: ```scss // 在一个叫做 utilities.scss 中声明一些工具类函数 @forward 'tools/mixins'; @forward 'tools/functions'; ``` 这允许其他项目轻松集成这些实用程序而无需关心内部结构细节,同时也简化了跨项目的协作流程。 #### 结合 PostCSS 插件 考虑到兼容性需求或是某些特殊场景下的应用案例,还可以考虑借助像 Autoprefixer 这样的 PostCSS 工具来处理浏览器前缀等问题,正如 Bootstrap 4 所做的那样,移除了对厂商前缀混入的支持因为已经不再必要[^2]。 通过上述措施,开发者可以获得更好的开发体验的同时也顺应了前端工程实践的进步趋势。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值