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

高档网站建重庆是哪个省属于哪个省

高档网站建,重庆是哪个省属于哪个省,Python建网站的步骤,广州一建建设集团前言 最近做到了一个权限控制的功能。在这个功能中看到了这个功能的写法#xff0c;了解到了这个权限控制的功能#xff0c;也引发了思考。除了 v-if #xff0c;还有没有更好的#xff0c;更直观的#xff0c;更全局的写法呢#xff1f;带着这个问题#xff0c;我们先…前言 最近做到了一个权限控制的功能。在这个功能中看到了这个功能的写法了解到了这个权限控制的功能也引发了思考。除了 v-if 还有没有更好的更直观的更全局的写法呢带着这个问题我们先来看一下这个权限数据的来源。 权限来源 获取数据的方法也很简单就是后台接口请求数据。后端在登录后一次性返回所有的权限数据然后全局 localStorage 或者 store 存储起来。如果发生了修改就可以及时的通知到全局在使用获取的时候也方便快捷。代码如下 import { defineStore } from pinia // 声明初始化 const defaultState {permissions: {}, // 权限列表 }// 设置state存储 function setData(obj) {Object.keys(obj).forEach((key) {state[key] obj[key]})// 每次改动更新缓存localStorage.setItem(LOCAL_STORAGE_NAME, JSON.stringify(toRaw(state))) }// 请求权限码 async function getPermissionList() {const res await ajaxStore.common.getPermissionList()if (res.data?.code 0) {const arr res.data?.data ?? []const obj {}arr.forEach((item) (obj[item.permissionCode] item.permissionName))// 全局存储setData({ permissions: obj })return state.permissions} else {return null} } 获取到数据以后就可以来思考怎么使用这些数据。目前所知的有3种权限控制方式下面我们一个一个的来看。 三种方法 1. 函数方式 这是我们最先想到的方法也是最常用的方法。代码如下 templatedivTabs :datatabConfigs/TabsNoPower v-if!(tabConfigs tabConfigs.length)/NoPower/div /template script setup namerealestateWarning // 获取 permissions 数据 import useUser from /store/user // 获取所有的菜单 import { realestateWarningTabs } from /const/menuconst userInfo useUser() // 过滤tab权限 const tabConfigs computed(() {const { permissions } userInfo ?? {}return (realestateWarningTabs.filter((item) {item.label item.textreturn permissions[item.permissionCode]}) ?? []) }) /script 本质就是使用 一个 tabConfigs 来筛选需要显示哪些 tab其中操作是从全局 store 中获取当前用户的权限码列表然后判断其中是否存在当前需要的权限码如果有对应的权限码就加进来。 2. 组件方式 我们可以单独写一个组件在组件内部进行权限的控制操作主要是通过插槽的形式把内部需要展示的组件引入进来在需要加权限的地方进行组件的引入组件内部的逻辑和函数方式基本无异。这样就可以统一管理权限了使用起来也比较方便。代码如下 templatedivPermission :valueAAAAAAAAAAAA//PermissionPermission :valueBBBBBBBBBBBB//PermissionPermission :valueCCCCCCCCCCCC//Permission/div /template scriptimport { Permission } from ./Permission; /scriptscript // 获取 permissions 数据 import useUser from /store/user // 获取所有的菜单 import { realestateWarningTabs } from /const/menuexport default defineComponent({props: {value: {type: [Number, Array, String],default: ,},},setup(props, { slots }) {const userInfo useUser()const { permissions } userInfo ?? {}const { hasPermission } usePermission();function renderAuth() {const { value } props;if (!value) {return getSlot(slots);}return permissions[value] ? getSlot(slots) : null;}return () {return renderAuth();};}, }); /script3. 指令方式 指令方式就是自己写个指令在需要的组件上使用指令就行了。如下 引用 templatedivAAAAAA v-permissionAAAAAA/BBBBBB v-permissionBBBBBB/CCCCCC v-permissionCCCCCC//div /template 编写指令 import { createApp, reactive, watchEffect } from vue const codeList reactive([1, 2, 3])const hasPermission (value) {return codeList.includes(value) }app.directive(permission, {updated(el, binding) {let update () {let valueNotChange binding.value binding.oldValuelet oldHasPermission hasPermission(binding.oldValue)let newHasPermission hasPermission(binding.value)let permissionNotChange oldHasPermission newHasPermissionif (valueNotChange permissionNotChange) returnif (newHasPermission) {addEl(el)} else {removeEl(el)}};if (el._watchEffect) {update()} else {el._watchEffect watchEffect(() {update()})}}, })在绑定元素挂载后调用使用 permissions 判断当前用户是否存在通过指令插入的按钮需要的权限码如果不存在直接移除绑定的元素。 在实际的开发中也会有其他的控制方式在各种论坛中也看到了使用装饰器来做的其实不管怎么做都是为了抽离业务逻辑是我们用起来跟简单为目的。
http://www.zqtcl.cn/news/324681/

相关文章:

  • 面包机做面包网站wordpress获取用户注册时间
  • 福州网站建设个人兼职泰州seo排名扣费
  • 泰安北京网站建设公司个人自我介绍网页
  • 网站建设适应全屏如何自动深圳市哪里最繁华
  • 杭州网站推广公司阿里云wordpress 安装目录
  • 厦门优秀网站建设app项目开发流程
  • 工作设计室网站海外网站代理
  • 室内设计官方网站没网站怎么做cpa
  • 哪个网站做欧洲旅游攻略好wordpress编辑器字体大小
  • aspcms 手机网站wordpress 刷浏览量
  • dw网站首页的导航怎么做网站建设企业建站模板
  • 平台型网站建设网站关键词优化seo
  • 齿轮机械东莞网站建设技术支持热搜词排行榜关键词
  • 河南专业做网站网站推广优化c重庆
  • 温州网站建设钱建设工程公司网站
  • 做笑话网站全国大学生职业生涯规划大赛官网
  • 便宜购 网站建设平台推广引流怎么做
  • 怎么用记事本做钓鱼网站制作公司网页的步骤
  • 机械设备东莞网站建设智慧软文网站
  • 个人网站需不需要搭建服务器蘑菇短视频2023版特色功能
  • 网站建设公司是什么东兰县建设局网站
  • 网站优化排名方案软件发布网
  • 企业网站开发价钱低企业策划案例
  • 网站建设帐号网站导入页欣赏
  • ftp 迁移 网站建筑公司商标logo设计
  • 没钱怎么做网站wordpress 链接修改插件
  • 建一个网站需要多久建设银行官网登录入口
  • 贸易公司网站制作邢台哪里做网站
  • 2018网站开发的革新帮别人起名 做ppt的网站
  • 有哪些做问卷调查赚钱的网站6长沙网站建设技术