DataV 数字翻牌器组件 dv-digital-flop 数字0不显示问题解决

问题:

在项目上线时我们会为了减少项目体积选择使用cdn链接将项目中用到的组件插件从打包的结构中剔除,在最近的项目中发现 DataV组件库 出现了问题,使用cdn链接时出现,数字翻牌器组件当config参数中的number 数组中的值为0时,就出现不显示的bug

测试:

下面是测试代码:

<div id="app">
    <button @click="change">切换</button>
    <dv-digital-flop :config="data" style="width:200px;height:50px;" />
  </div>

  <script src="https://unpkg.com/@jiaminghi/data-view/dist/datav.map.vue.js"></script>
  <script>
    var app = new Vue({
      el: '#app',
      data: {
        config : {
          number: [0],
          content: '{nt}个'
        },
        data:{
          number: [100],
          content: '{nt}个'
        }
      },
      methods:{
        change(){
          this.config.number[0] = 0
          this.data =  {...this.config}
          // 此处为官网推荐更新数据方式
          /**
			状态更新
			避免你的组件更新了数据后,状态却不刷新,也就是没变化,请务必看这里
			组件props均未设置deep监听,刷新props时,请直接生成新的props对象(基础数据类型除外)
			,或完
			成赋值操作后使用ES6拓展运算符生成新的props对象
			(this.someProps = { ...this.someProps })。
			**/
        }
      }
    })
  </script>

切换前 : 切换前

切换后: 在这里插入图片描述
可以看到 数字0不显示了.

分析:

在网上搜了一下之后发现有人在github上提过issue,并且作者也回复过了在2.9.3版本已经修复过了
在这里插入图片描述
github原issue描述: https://github.com/DataV-Team/DataV/issues/108;
然后继续换成对应的版本测试,仍然是这种状态

但是楼主在vue项目开发阶段并没有这个问题数值为0时正常显示:

<dv-digital-flop :config="data" style="width:200px;height:50px;" />
    data(){
        return {
            
            data:{
            number: [0],
            content: '{nt}个'
            }
        }
    }

在这里插入图片描述
而当前使用的版本为2.10.0 在确认版本没问题后,就怀疑是不是在线上的使用的链接会不会和npm下载的不一样, 于是在项目的node_modules中找到了@jiaminghi文件中的data-view 具体路径为项目根目录/node_modules/@jiaminghi/data-view 文件夹就在node_modules的前面几个很好找
然后将 data-view文件夹里面的 dist目录里的 datav.min.vue.js 复制了一份出来
在这里插入图片描述
这个为npm包build后发布的文件,替换到测试的项目中发现还是没有解决该问题.
在仔细想想开发时用到的资源,与使用连接用到的资源的区别后发现:
在开发时我们使用node_modules中的这个包时 使用是/node_modules/@jiaminghi/data-view/src 中的资源,而线上使用cnd的时候使用的 dist中打包好的资源,是不是这两个地方的代码更新不同步呢? 于是我将整个@jiaminghi文件复制出来,进入data-view目录先进行npm install 安装 依赖文件, 删除data-view目录下的dist文件夹(这个是编译生成的文件夹),最后npm run build 进行构建.将生成的dist文件夹中的datav.min.vue.js 复制到测试项目中进行测试,发现问题解决.

总结

  1. 将/node_modules/@jiaminghi文件夹复制一份出来
  2. 进入data-view目录npm install 安装 依赖文件,
  3. 删除data-view目录下的dist ,npm run build 进行构建(构建前请全局安装rollup npm install rollup -G)
  4. 构建好的dist文件夹中的js就可以用到项目中啦
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值