网站首页 > 知识剖析 正文
今天升级使用vue3发现通过ref获取的内容是null,下面是爬坑过程
子组件模板
<template>
<div class="video-list">
<div v-for="item in videoList"
v-bind:video="item"
v-bind:key="item.id"
class="video-item">
<video controls autoplay playsinline ref="videos" :height="cameraHeight" :muted="item.muted" :id="item.id"></video>
</div>
</div>
</template>
<script>
import { defineComponent } from 'vue';
export default defineComponent({
name: 'vue3-webrtc',
setup(){},
methods: {
async join(){
console.log('join')
}
}
});
</script>
父组件调用
<Vue3WebRTC
ref="webrtc"
width="100%"
:roomId="roomId"
@error="onError" />
</div>
<div class="row">
<div class="col-md-12 my-3">
<button type="button" class="btn btn-primary" @click="onJoin">Join</button>
</div>
</div>
<script setup lang="ts">
import { VueWebRTC } from 'vue-webrtc';
import { onMounted, ref } from 'vue'
// 你到ref
const webrtc = ref(null);
console.log(webrtc);
</script>
我们得到null 这里是生命周期的问题,setup里面相当于created 此时还没有dom
修改如下
<script setup lang="ts">
import { VueWebRTC } from 'vue-webrtc';
import { onMounted, ref } from 'vue'
// 你到ref
const webrtc = ref(null);
function onJoin() {
webrtc.join();
}
onMounted(()=>{
console.log('获取dom元素',webrtc)
})
</script>
这时我们能打印出来数据,
但是当我们调用方法onJoin方法时就会提示webrtc没有join方法,我们知道vue3是proxy模式,要拿到这个实体,还是要用里面的value,最后修改如下,即可正常
<script setup lang="ts">
import { VueWebRTC } from 'vue-webrtc';
import { onMounted, ref } from 'vue'
// 你到ref
const webrtc = ref(null);
function onJoin() {
webrtc.value.join();
}
onMounted(()=>{
console.log('获取dom元素',webrtc.vlaue)
})
</script>
猜你喜欢
- 2024-11-27 video.js中文文档(三):设置
- 2024-11-27 高级前端进阶:我是如何把 C/C++ 代码跑在浏览器上的?
- 2024-11-27 原生微信小程序video隐藏控件超级方法
- 2024-11-27 浏览器播放rtsp视频流解决方案
- 2024-11-27 第49节 DOM2和DOM3-Javascript-王唯
- 2024-11-27 使用AI CoNR 算法,仅仅利用4张动漫图片——便可以创建舞蹈视频
- 2024-11-27 WebRTC是如何实现音视频的录制
- 2024-11-27 WebAssembly该怎么学第二篇
- 2024-11-27 WebRTC录采集平面数据
- 2024-11-27 JAVA全栈CMS系统vue图片/视频上传组件,多图上传及删除功能11
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)