代码如下图,在uni-app 中,使用腾讯视频组件,想要使用v-if 在接口返回vid后再进行腾讯视频组件的渲染,但是现在接口返回后无法使用v-if进行切换,一直停留在请求前的状态,这个问题该如何解决呢
这个问题我自己解决了,解决办法是在进入页面的时候使用option携带vid并直接赋值就可以正常显示
参考GPT和自己的思路:
你好!针对你的问题,我建议你可以尝试使用 v-show 替代 v-if 进行切换。因为 v-if 会在切换时销毁组件,再重新创建,可能会造成加载时间较长的问题。而 v-show 则是通过 CSS 控制元素的显示和隐藏,不会重新渲染组件,加载速度会更快。具体操作可以参考下面的代码示例:
<template>
<view>
<!-- 这里使用 v-show 进行切换 -->
<txv-video v-if="showVideo" vid="{{ vid }}"></txv-video>
<div v-else>暂无视频</div>
</view>
</template>
<script>
export default {
data() {
return {
showVideo: false,
vid: ''
};
},
methods: {
async loadVideo() {
// 发送请求获取 vid
const res = await fetch(url);
const data = await res.json();
this.vid = data.vid;
this.showVideo = true; // 这里切换为显示视频
}
},
mounted() {
this.loadVideo();
}
};
</script>
另外,关于你出现的无法切换的问题,我建议你可以在控制台中查看错误日志,看看是否有相关的报错信息,以便更好地定位和解决问题。