Vue3动态实例化组件(自定义弹窗) |
您所在的位置:网站首页 › 自动弹窗代码怎么用的啊 › Vue3动态实例化组件(自定义弹窗) |
Vue3动态挂载组件
问题操作1.父组件使用2.子组件使用
总结
问题
需求:自定义地图弹窗组件,使用技术为vue3+vite3,实现动态实例化组件 操作 1.父组件使用代码如下(示例): Popup是自定义的弹窗组件,挂载组件中不能使用vue2中的extend,使用createApp创建实例,同时创建一个dom元素,使用mount将实例化的组件挂载到该元素上。最后将实例化组件内容的源代码传入弹窗,即component.$el。 vue3组件传递参数博主目前介绍两种方式 1.父组件使用provide,子组件使用inject接受,只限于传递数据,不能传递方法函数(vue3的新特性) 2.使用传统的props,可以传递方法和数据,在父组件创建时添加进入,以方法举例 //实例化组件 let pop = createApp(Popup,{ {getLines:getLines}//传递参数(方法) }); //传递参数(数值) pop.provide('test', 123); //使用组件 pop.use(ElementPlus) //创建dom,及即组件容器 const parent = document.createElement('div'); const component= pop.mount(parent); //设置弹窗内容 infoWin.setContent(component.$el); 2.子组件使用代码如下(示例): 子组件接收父组件的方法时需要设置类型为Fucntion export default{ name: 'map-pop', props:{ getLines:{ type:Function } }, setup (props) { //接受参数 const test=inject('test'); //调用父组件查看轨迹方法 function getLine(data){ props.getLines(data) } return {test,getLine} }, } 总结本文仅仅简单介绍了实例化组件的使用,如果存在问题,感谢大家批评指正!!! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |