【发布时间】:2021-04-20 09:43:15
【问题描述】:
我的实际 vue 项目中有多个视频文件。每个视频都有一些由 v-if 控制的规则。
如果v-if为真,那么我只需要下载视频文件。
目前发生的情况是,即使我们将 v-if 设置为 false,视频文件也是从网络下载的。有没有办法阻止这种行为?
<script src="https://unpkg.com/vue"></script>
<div id="app">
<video v-if="showVideo" autoplay loop muted width="450" src="https://www.w3schools.com/tags/movie.mp4"></video>
<video v-if="showVideo" autoplay loop muted width="450" src="https://www.w3schools.com/tags/movie.mp4"></video>
<div>
</div>
</div>
示例 JS 小提琴:https://jsfiddle.net/sajuthankathurai/62n5erju/26/
【问题讨论】:
-
这是因为您使用的是DOM模板。甚至在页面上初始化 Vue 之前,浏览器都会解析整个 HTML。当它看到有效的
video元素和有效的src属性时,它将启动下载(在执行任何Vue 代码之前)。所以我想下面的两种解决方案都应该有效。另一种方法是将video元素包装到自定义组件中或使用<component is="video"