当前位置: 首页 > article >正文

vue 动态替换父组件

替换父组件??

什么鬼???

这个场景的确很少见!!不过我们要说的的确是要替换父组件!!!!!!

就是子组件内容不变但是父组件变化

 我们要把父组件替换成其他的,虽然这种场景不大可能遇到,但是爱转牛角尖的我还是决定试一试!!

弊端

替换父组件回导致子组件dom回流(dom完全重新渲染,解析dom,解析css,组合dom和css规则),即使给父节点添加了keepalive也无法避免,只是保留虚拟dom,减少了vue实例的重新生成

动态组件

动态组件,我们首先想到的是component,代码如此

<component is="xx">
  <子组件/>
</component>


这样是没问题的。

父组件

那父组件都得接受一个默认插槽,大概就得长这样
 

//xx.vue

<template>
    <div>

        <h1>父组件1</h1>

        <slot/>
    <div>
</tempate>

基本思路有了



Suspense


那如果动态组件需要显示过度效果呢



    <Suspense>
          <!-- 主要内容 -->
          <component :is="Component">
            <子组件/>

        </component>

          <!-- 加载中状态 -->
          <template #fallback>
            正在加载...
          </template>
        </Suspense>

完美基本长这个样子

问题


切换父组时候,子组件必定会被卸载的!!

用keep-alive包裹一下component即可

demo

在线demo:InsCode - 让你的灵感立刻落地

这个demo里面你回发现切换子组件时候,子组件一的cout值回保持不变,但是切换父组件时候子组件的count值不会保留,那是因为这个子组件的父组件被销毁了导致子组件的缓存也会被销毁

如果给父组件的component也加上keepalive就没有这个问题了


http://www.kler.cn/a/289179.html

相关文章:

  • 软件测试:测试用例详解
  • 随时随地编码:香橙派Zero3上安装Code Server远程开发指南
  • 探索Pillow库:Python图像处理的瑞士军刀
  • WPF学习之路,控件的只读、是否可以、是否可见属性控制
  • Android Framework AMS(16)进程管理
  • 【机器学习】机器学习中用到的高等数学知识-2.概率论与统计 (Probability and Statistics)
  • salesforce flow 更新记录,某一个更新失败会导致所有失败吗
  • SpringMVC基于注解的使用
  • 系统编程-数据库
  • [开源]低代码表单FormCreate的control表单联动功能的详解
  • vue3中使用supermap icilent3d for cesium
  • 【深度学习 CV方向】图像算法工程师 职业发展路线,以及学习路线
  • SSMA for MySQL 将MySQL数据导入SqlServer
  • Xilinx FFT IP使用
  • 【流式输出】LangChain流式输出的概念
  • Python教程:使用 Python 和 PyHive 连接 Hive 数据库
  • windows核心编程,纤程使用---->UNIX服务器应用程序移植到Windows中
  • 在更新python虚拟环境pip版本时,由于更新失败导致pip丢失的修复
  • GD - EmbeddedBuilder - 给已有工程换MCU
  • 【IPV6从入门到起飞】2-1 获取你的IPV6(手机、CPE等)
  • LVS Keepalived nginx haproxy 区别
  • 设计模式-原型适配器桥接外观
  • 基于大数据分析景区消费行为影响因素研究【消费等级预测、携程,去哪网数据抓取】
  • 亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程
  • 前端面试:webSocket如何兼容低浏览器?
  • 安防监控视频平台LntonAIServer视频智能分析平台新增视频质量诊断功能