首页 新闻 搜索 专区 学院

Vue 条件渲染组件设计方案

0
悬赏园豆:10 [待解决问题]

问题背景:

  1. 多个父组件复用一个子组件,不同条件下要对父组件进行切换(v-if、v-show),称这些父组件为不同属性页。

  2. 其它组件有更改时,要对属性页进行更新,要更改的组件与属性页没直接关系,所以设置一个状态管理变量来管理属性页是否更新,并在子组件中进行监听,当其它组件更改时,更改这个变量,从而更新属性页。

  3. 监听函数放在子组件中,当变量改变时,子组件触发父组件更新函数,从而对属性页进行更新。

约束条件:

  • 频繁的属性页切换适合用v-show。但是如果用 v-show,那么监听子组件触发父组件函数时,无法触发到目前正在show的这个父组件的函数,也无法同时触发多个父组件函数(当然也不想这样做)

  • 使用 v-if ,但有一个属性页它并不能被销毁,不然会报错,所以该属性页必须得用 v-show

  • 对于绑定了 ref 的属性页,也必须要用 v-show 啊,但是只能有一个 v-show(如果有两个就又会出现第一个问题),于是在用到这个组件 ref 的时候,使用 setTimeOut 让它去注册一下。

感觉出这个设计模式并不好,求各位大佬指点!

Vue
二森的主页 二森 | 初学一级 | 园豆:192
提问于:2021-05-17 21:39
< >
分享
所有回答(1)
0

感觉动态组件 <component :is="someComponent"/> 能解决这个问题

刘威益佰 | 园豆:206 (菜鸟二级) | 2021-05-19 10:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册