vue+elementUI dialog中select框切换无效始终只显示一个的问题

在做一个新增编辑的功能时,共用了一个dialog弹出层,弹出层中有一个选择框如图

新增的时候没有问题,可以切换选中不同的选项,但是编辑的时候,出现了无法切换的问题,增加change事件,发现值是变化的,页面就是没变化,应该是没有渲染导致。

最终通过一系列查找,发现是框架有问题,解决方案如下:

//在select框中的change事件中,加一段代码,强制重新渲染 @change="$forceUpdate()"。
<el-select
  v-model="form.channel_code"
  clearable
  filterable
  class="filter-item"
  placeholder="请选择"
  style="width: 110px;"
  @change="$forceUpdate()"
>
  <el-option
    v-for="item in channelCodeList"
    :key="item.channel"
    :label="item.channel"
    :value="item.channel"
  />
</el-select>

$forceUpdate() 在页面初始化的时候,也可以加一下这个。

最终问题解决了,也可以有效的切换选项了。

this.$forceUpdate() 是 Vue.js 框架中的一个实例方法,用于强制 Vue 实例重新渲染。在大多数情况下,Vue 的响应式系统会自动跟踪依赖并更新 DOM,但是当你在 Vue 组件中直接修改了由 Vue 管理的状态之外的数据(比如直接修改了数组索引、或使用了 Object.assign() 等方法修改了对象的属性,而这些修改没有被 Vue 的响应式系统捕获时),你可能需要手动通知 Vue 重新渲染组件。

使用场景

  • 直接修改了响应式数据但 Vue 没有检测到:如上所述,当你直接修改了响应式数据(如数组索引或深层嵌套的对象属性),而这些修改没有被 Vue 的响应式系统捕获时,可以使用 this.$forceUpdate() 来强制 Vue 重新渲染组件。
  • 优化渲染性能时慎用:虽然 this.$forceUpdate() 可以强制组件重新渲染,但滥用它可能会导致性能问题,因为它会跳过 Vue 的虚拟 DOM 比较和最小更新算法,直接进行 DOM 的更新。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue ElementUI后台管理权限架是一种基于Vue.jsElementUI的后台管理系统的权限控制解决方案。它主要用于对后台管理系统的用户角色和权限进行管理和控制。 该权限架提供了一种简单、灵活的方式来实现用户权限控制。它通过定义角色和权限的方式来管理系统的用户,可以根据不同的角色给予用户不同的权限。例如,管理员具有最高权限,可以对系统的所有功能进行操作;而普通用户只能进行部分功能的操作。 在实际应用,可以通过在路由配置定义不同的角色和权限来进行权限控制。通过使用Vue Router的导航守卫功能以及ElementUI的菜单组件,可以在用户登录后根据其角色和权限动态生成对应的菜单和路由。 在实现权限控制时,可以将角色和权限的配置存储在后端数据库,并通过接口提供给前端进行调用。前端可以通过与后端的交互来获取用户的角色和权限,从而进行动态的权限控制。 除了角色和权限控制外,该权限架还提供了其他功能,如登录、注销、密码修改等。它还支持对菜单的动态展示与隐藏,可以根据用户的权限来显示对应的菜单项。 总体而言,Vue ElementUI后台管理权限架是一种方便、灵活的权限控制解决方案,可以帮助开发者快速构建权限管理功能,提高开发效率,同时保障系统的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值