vue2.0怎么把一个已渲染的组件,渲染到一个弹窗上面?要保持组件所有状态和数据?

vue2.0怎么把一个已渲染的组件,渲染到一个弹窗上面?要保持组件所有状态和数据!
因为有很多组件需要这样做,不可能为每一个都写一个方法或者props传入。有没有办法把组件的clone一个,保持状态的状态和数据,重新渲染到一个弹窗上面呢?


回答:

已渲染的组件用ref拿到再给其他的地方使用就可以了


回答:

iframe


回答:

写一个弹窗组件,将所有可能展示的‘已渲染的组件’import进去,根据弹窗组件open传入的参数区分展示哪个‘已渲染的组件’,每个需要的弹窗的地方import这个弹窗组件,调用弹窗组件的open方法并传入参数。没有更省事的办法。


回答:

vue3可以通过teleport来实现这个功能,所以我们只需要用vue2来手写这个组件即可
https://juejin.cn/post/7224051399256916029


回答:

<template>

<div>

<button @click="showModal = true">Open Modal</button>

<keep-alive>

<component :is="currentComponent" v-if="!showModal"></component>

</keep-alive>

<modal v-if="showModal">

<keep-alive>

<component :is="currentComponent"></component>

</keep-alive>

</modal>

</div>

</template>

<script>

import Modal from './Modal.vue'

import YourComponent from './YourComponent.vue'

export default {

components: {

Modal,

YourComponent

},

data() {

return {

showModal: false,

currentComponent: 'YourComponent'

}

}

}

</script>

以上是 vue2.0怎么把一个已渲染的组件,渲染到一个弹窗上面?要保持组件所有状态和数据? 的全部内容, 来源链接: utcz.com/p/934671.html

回到顶部