组件不能动态重载的曲线救国的方法,实现不刷新页面重载组件

文章讲述了如何在写一个JSON预览页面时,由于组件不支持动态修改expand-depth参数来实现展开/收起,作者通过给组件绑定reloadKey并配合点击事件重载组件,实现了动态效果,虽然会有轻微闪烁,但适用于不支持动态重载的第三方组件。
摘要由CSDN通过智能技术生成

        在写一个json格式化预览页面的时候,需要实现一键展开/收起右侧预览区json结构,但是这个组件提供的这个参数只能在组件加载时就配置好,并不能动态去进行修改这个参数实现展开/收起状态。

<json-viewer
     :show-array-index="true"
     :show-double-quotes="true"
     style="border: 0"
     :value="jsonRes"
     :expand-depth=expandDepth
     boxed
     sort
            ></json-viewer>

        如图这个expand-depth是用来控制展开层数的,只要能动态实现修改此参数便可动态实现展开/折叠,但是组件并不支持,因此是用了个曲线救国的方法。

<a-button @click="()=>reloadKey+=1;">一键展开</a-button>            
<json-viewer
                :key="reloadKey"
                :show-array-index="true"
                :show-double-quotes="true"
                style="border: 0"
                class="animate__animated animate__fadeIn"
                :value="debugRes"
                :expand-depth=expandDepth
                :expanded="true"
                boxed
                sort
            ></json-viewer>

        最终曲线救国的方案就是:给这个组件绑定一个key,并且在单击这个"一键展开"的时候将reloadKey+1,这样就能实现重载这个组件,但是会有一个小小的闪烁,所以可以给组件加上缓入的动画,其他第三方组件如果不支持动态重载的话,也能用绑定key的方式让它动态加载。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值