您的位置:首页 > 文旅 > 旅游 > 义乌app制作公司_新媒体推广渠道有哪些_如何销售自己产品方法有哪些_网站页面优化方法

义乌app制作公司_新媒体推广渠道有哪些_如何销售自己产品方法有哪些_网站页面优化方法

2025/4/28 6:01:13 来源:https://blog.csdn.net/i_am_a_div/article/details/147478499  浏览:    关键词:义乌app制作公司_新媒体推广渠道有哪些_如何销售自己产品方法有哪些_网站页面优化方法
义乌app制作公司_新媒体推广渠道有哪些_如何销售自己产品方法有哪些_网站页面优化方法

文章目录

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

场景:

列表的操作列有按钮,通过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)}});},
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com