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

vue3实现v-directive;vue3实现v-指令;v-directive不触发

文章目录

    • 场景:
    • 问题:
    • 原因:‌

场景:

列表的操作列有按钮,通过v-directive指令控制按钮显隐;首次触发了v-directive指令,控制按钮显隐正常;但是再次点击条件查询后,列表数据变化了渲染内容也正常,但是v-directive指令未触发,导致按钮显隐不正常。

问题:

初始化时触发了指令,但是数据更新后未触发

原因:‌

指令生命周期触发不全‌
自定义指令 v-dataAreaTableBtn 仅定义了 mounted 生命周期,数据更新时未触发 update 钩子
需补充 update 生命周期以响应数据变 即可

import { download } from '@/utils/download.js'// 提取公共逻辑
function updateButtonVisibility(el, binding) {// console.log('%c【' + '触发指令' + '】打印', 'color:#fff;background:#0f0')let data_area = sessionStorage.getItem('data_area') // 放最外层会取不到switch (data_area) {case null:el.style.display = ""breakcase undefined:el.style.display = ""breakcase 2:el.style.display = "" // 2区下的列表数据按钮直接放开 (因为说2区不会有3区数据 所以直接放开)breakcase "2":el.style.display = ""breakcase '3':el.style.display = (!binding.value ? true : binding.value == data_area) ? "" : "none" // 3区下的列表数据按钮根据来源判断 3的显示 2的隐藏breakcase 3:el.style.display = (!binding.value ? true : binding.value == data_area) ? "" : "none"breakdefault:break}
}export default {install(Vue) {// 其他指令等Vue.directive('download', {mounted(el, binding) {el.addEventListener('click', () => {download('', binding.value || '', 'url')})},})// 自定义指令Vue.directive('dataAreaTableBtn', {mounted(el, binding) { // 初始化钩子updateButtonVisibility(el, binding)},updated(el, binding) { // 新增更新钩子updateButtonVisibility(el, binding)}});},
}
http://www.xdnf.cn/news/115723.html

相关文章:

  • 用 Python 实现基于 Open CASCADE 的 CAD 绘图工具
  • 深入浅出JavaScript常见设计模式:从原理到实战(1)
  • 【Hive入门】Hive查询语言(DQL)完全指南:从基础查询到高级分析
  • Redis学习
  • 今日CSS学习浮动->定位
  • Vue3 ref与props
  • 进入救援模式(物理服务器)
  • SAP计划在2025年推出400个人工智能用例
  • 【信息系统项目管理师】高分论文:论进度管理和成本管理(智慧城管平台项目)
  • ShenNiusModularity项目源码学习(21:ShenNius.Admin.Mvc项目分析-6)
  • CentOS 7 磁盘分区详细教程
  • 学习MySQL的第十一天
  • 秒出PPT推出更强版本,AI PPT工具进入新纪元!
  • 养生之道:在岁月里雕琢健康之美
  • HarmonyOs @hadss/hmrouter路由接入
  • 【C++】模版初阶:函数模板、类模板
  • 机器学习基础 - 分类模型之SVM
  • 解决vue3写echarts不能根据屏幕大小缩
  • k8s 1.26版部署
  • TiDB 深度解析与 K8S 实战指南
  • centos挂载新的硬盘
  • Linux学习笔记之动静态库
  • 全行业软件定制:APP/小程序/系统开发与物联网解决方案
  • 机器人操作中的生成式 AI:综述(上)
  • 鸿蒙-状态管理V1和V2在ForEach循环渲染的表现
  • 查看系统是debian还是redhat
  • Android学习总结之Room篇
  • 第四章: 服务集成抽象
  • 把一个 PyTorch 的图像张量转换成 NumPy 格式,并按照正确的维度顺序显示出来
  • 《Pinia 从入门到精通》Vue 3 官方状态管理 -- 进阶使用篇