首页 > 其他分享 >vue v-if 和v-permission 共同使用的奇怪问题

vue v-if 和v-permission 共同使用的奇怪问题

时间:2023-07-18 16:34:51浏览次数:28  
标签:status 功能 vue permission 按钮 权限 奇怪

背景

后台系统某功能按钮需要订单状态和用户权限共同校验是否显示,将权限校验和v-if共同作用在同一div中,下方为实例代码

<div v-if="status==0">
    <div @click="function1">
    某按钮功能
  </div>
</div>
<div v-if="status==1" v-permission="['admin']">
    <div @click="function2">
    某按钮功能
  </div>
</div>

 

在进行直接查询时无异常,没有显示功能按钮;但在查询状态 status == 0 为真后,再次查询status==1 则进行报错,并且在没有权限的情况下,显示功能按钮。

这里作出猜想,因为在v-if判断status==0 的时候,进行了 是否status==1 等于1的判断;而再次查询后,status的值刷新为1时,在v-if判断是否 status==0 后,则直接进行了  是否status==1的判断,而status确实为1,则直接显示在页面,而后续权限才判断,告诉vue:你这不对啊,他没这个权限,不应该显示,然后以及渲染出来的节点不能直接删除,报了错。

解决方法

将v-permission作为首要判断条件,将v-if作用在按钮级别,即

<div v-if="status==0">
    <div @click="function1">
    某按钮功能
  </div>
</div>
<div  v-permission="['admin']">
    <div v-if="status==1" @click="function2">
    某按钮功能
  </div>
</div>

有明白原理的朋友可以和我说明

 

标签:status,功能,vue,permission,按钮,权限,奇怪
From: https://www.cnblogs.com/piaohd/p/17563332.html

相关文章

  • antd+vue3 tree-select 组件库 筛选结果不正确的问题
    第一次遇到这种带搜索框的下拉树状列表搜索关键字的时候出现我不想要的结果。我感觉组件它只是搜索一级列表而没有搜索二级列表,然后一节列表把它整个的二级列表带出来了。二级列表里边包含搜索关键字的所有item才是我想要的。相关代码:1<!--页面名称-->2<div......
  • vue 小写转大写方法
    好久好久没更新了啊,其实有好多可以写的,但是不知道为啥不想写了方法一://输入的金额进行大写转换functiontransformation(val){varfraction=["角","分"];vardigit=["零","壹","贰","叁","肆","伍","陆"......
  • vue前端项目启动
    我们拉取了一个前端项目后,如果项目中有说明的文档,可以参照文档的步骤启动项目,如果项目中没有说明文档,那我们可以按照以下的步骤启动项目1、首先是安装依赖包npminstall 2、启动项目npmrundev这里的npmrun环境名称,这里的环境名称主要取决于项目中的package.json文件中......
  • vue学习——分析脚手架
        ......
  • npm安装教程 搭建vue
    一、相关概念npm:Nodejs下的包管理器。webpack:它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包。vue-cli:用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要npminstall......
  • 介绍社交论坛问答发帖系统源码-java+vue+uniapp开发前后端
    前后端分离社交论坛问答发帖BBS源码,社交论坛小程序|H5论坛|,app论坛是java+vue+uniapp开发的前后端分离社交论坛问答发帖/BBS项目,包括论坛图文帖,视频,圈子,IM私聊,微信支付,付费贴,积分签到,钱包充值等论坛小程序论坛app完整功能演示地址:www.runruncode.com/java/19462.html ......
  • 前端Vue仿微信我的菜单栏组件按钮组件
    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率......
  • vue--day27---vue生命周期1
              beforeCreate:数据监测、数据代理创建之前在实例初始化之后,数据监测、数据代理创建之前被调用,此时无法通过VM访问data中的数据、methods中的方法。created:数据监测、数据代理创建之后实例已经创建完成之后被调用,在这一步,实例已完成以下配......
  • 浅析vue3中如何使用动态组件、如何快速理解Vue3的 toRaw和markRaw、ref与shallowRef、
    一、Vue3中使用component:is加载动态组件1、不使用setup语法糖,这种方式和vue2差不多,is可以是个字符串2、使用setup语法糖,这时候的is如果使用字符串就会加载不出来,得使用组件实例<componentclass="task-box":is="componentObj[route.params.type]":info="taskInfo"></co......
  • React、Vue框架如何实现组件更新,原理是什么?
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址引言React和Vue都是当今最流行的前端框架,它们都实现了组件化开发模式。为了优化性能,两者都采用了虚拟DOM技术。当组件状态发生改变时,它们会使用虚拟DOM进行局部渲染比对,只更新必要的DOM节点,从而避免重新渲染整个......