video.js 播放m3u8 问题 【No compatible source was found for this media.】 【nextTick】

首先是这个问题呢

No compatible source was found for this media. // 找不到此媒体的兼容源

原因

官方解释

Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更

意思呢就是动态赋值完后不是立即就能赋值的。

最这问题呢是因为我们动态赋值的时候dom获取的是以前的【没有赋值之前的dom

解决办法 【nextTick】

  that.$nextTick(() => {
          //将此操作放在nextTick中  这样【获取到的就是我们赋值视频路径后的dom】
            videojs(
              "my-video",
              function() {
                that.play();
              }
            );
          });

【nextTick】用法和原理

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
简单来说nextTick就是用来处理修改数据之后就能拿到更改完数据的dom!

//举个例子 
this.chuz = “我是初始值”

//我们获取这个值的dom(获取前先给赋值个新数据)
this.chuz = “我是更改后的”
直接获取dom  //我们拿到的值任然是【我是初始值】
that.$nextTick(() => {
       放在nextTick中获取dom  //我们拿到的值是【我是更改后的】
});
那么今天的nextTick Git到了吗?

在这里插入图片描述
再见各位溜了 玩去了!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值