div层级标签对于组件显示和隐藏的影响

本文通过一个实例讲解在Vue中如何使用v-if和watch监听路由变化来切换组件显示。作者遇到点击链接后组件隐藏但预期绿色块应显示的问题,原因是黄色块隐藏时连带隐藏了绿色块。解决方案是将组件分别包裹在独立的div中,保持清晰的结构。此问题提醒开发者注意DOM结构和组件嵌套的影响。
摘要由CSDN通过智能技术生成

给大家避避坑,我花了几天的时间才发现这个问题(可能是我太蠢了)

要实现的效果:

点击链接,黄色块隐藏,绿色块显示

注意:router-view 在哪,页面就从哪里开始渲染

本案例,router-view是在h2标签后,所以在h2标签后开始渲染

接下来继续回到我们的案例,我们需要实现一个组件隐藏和显示(使用 v-if)

并使用watch监视路由的变化,如果发现路由跳转,则改变v-if的值

下面附上代码:

 

 

可得到的结果却是

 你没看错,得到的是一片空白

 可是,逻辑也没毛病啊?到底是为什么?

你还记得一开始的效果图吗?绿色块是被包含在黄色块中,所以当我们隐藏黄色块时,会将绿色块一起隐藏

 

让我们修改代码:

将原来的黄色块用一对div标签包裹

然后需要渲染出来的绿色标签用一对div标签包裹 

可能有人会说,这不是一眼就能看出来嘛

可是当你div标签里嵌套着div标签,层层嵌套,你就看不出来你写的东西在哪个div标签里了,如果div标签嵌套较多,尽量写好它们的层次结构,并且必要时,可以将它们折叠起来,就能清晰地看出网页的大结构了 

第一次写文章,以后会越写越好的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值