Vue js组件中引入Vue组件
用Vue一年多但是对Vue一些原理了解还是不够,研究这个问题花了一天,记录一下。
需求
需求:要实现地图上弹窗,弹窗内嵌入Vue组件,组件调用视频播放插件。
难点:要改造封装好的弹窗js组件,引入Vue组件,之前调用组件都是直接在.vue文件里import进来,写进components里就OK,可是放到js文件里还是第一次遇到。搜索了半天终于受到启发,可以用 Vue.component ,可是找到以后还是研究了半天写法才成功引入。
关键代码
在前面引入Vue组件
import videoPreview from "@/view/videoPreview"
创建组件实例
constructor(map, {}) {
this.component = Vue.component('video-preview', videoPreview)
this.createComponent(this.instance)
}
createComponent(){ //创建组件实例但暂不挂载
const component = Vue.component('video-preview')
const instance = this.instance = new component()
instance._props.videoData = {} //这里相当于平时 <videoPreview :videoData="videoData"></videoPreview> 写法里传值videoData
}
创建html
this.parent = document.createElement('div')
this.parent.innerHTML = `
<div class="pop-container">
</div>`
this.container = this.parent.querySelector('.pop-container')
this.container.innerHTML = `
<div class="videoWindow">
<div id="video-preview"></div>
</div>`
需要用到弹窗和组件的时候再挂载(如果需要反复调用,仅需挂载一次,否则会重复创建(需要显示视频播放插件时问题尤其明显))
this.instance.$mount("#video-preview")
调用组件内方法(假设组件内有方法 showPlugin()
)
this.instance.showPlugin()
参考
分类:
前端开发 / Vue
, 前端开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!