vue中video视频路径改变,dom不更新问题

效果展示

视频切换前

视频切换后

完整代码

html 复制代码
<template>
    <!-- 设置v-if只在路径有值时,标签才存在 -->
    <video v-if="state.videoSrc != null" controls>
        <source :src="state.videoSrc" type="video/mp4"></source>
    </video>
    <div>
        <el-button @click="handleClick">切换视频</el-button>
    </div>
</template>

<script setup name="videoUpdate">
import { onMounted, reactive, nextTick } from 'vue';
// 这是是调用本地视频,但不影响测试切换功能
import staticFile1 from '@/assets/video/2023-07-09-20-59-01.mp4'
import staticFile2 from '@/assets/video/2023-07-13-13-59-36.mp4'

const state = reactive({
    videoSrc: null,//初始videoSrc
})

// 切换视频按钮
const handleClick = async () => {
    // 1.先清空videoSrc
    state.videoSrc = null
    // 2.async配合nextTick等待页面更新
    await nextTick()
    // 3.将videoSrc换成第二个视频路径
    state.videoSrc = staticFile2
}

onMounted(async ()=>{
    // 页面初始化时显示第一个视频
    state.videoSrc = staticFile1
})


</script>

<style scoped>
    video{
        width: 400px;
    }
</style>
相关推荐
今天也要晒太阳4732 分钟前
element表单和vxe表单联动校验的实现
vue.js
@PHARAOH1 小时前
WHAT - Vercel react-best-practices 系列(三)
javascript·react.js·ecmascript
duangww1 小时前
JavaScript调用ABAP后端发布的restful服务
javascript·sap fiori
答案—answer1 小时前
开源项目:Three.js3D模型可视化编辑系统
javascript·3d·开源·开源项目·three.js·three.js编辑器
Thomas游戏开发1 小时前
分享一个好玩的:一次提示词让AI同时开发双引擎框架
前端·javascript·后端
m0_748252381 小时前
Angular 2 数据显示方法
前端·javascript·angular.js
蓁蓁啊1 小时前
GCC 头文件搜索路径:-I vs -idirafter 深度解析
java·前端·javascript·嵌入式硬件·物联网
依赖_赖1 小时前
前端实现token无感刷新
前端·javascript·vue.js
m0_748252382 小时前
JavaScript 基本语法
开发语言·javascript·ecmascript
hhcccchh2 小时前
学习vue第十三天 Vue3组件深入指南:组件的艺术与科学
javascript·vue.js·学习