Subscribe on changes!

Nested v-show ignores 'outer' value, and component with v-show="false" is shown.

avatar
Feb 14th 2024

Vue version

3.4.19

Link to minimal reproduction

https://play.vuejs.org/#eNqNVNtu4jAQ/ZWRX0olSEDsy7IJ6u6qD11pL+rymJcQD+DWsSPbCUiUf+/YARpuUq0oiudy5pyZ2Fv2vaqipkY2YYnDspK5w2mmgFbypBSan7qstELloBnYlV6nGVvk0mLGyCAWtLWOciykaQpDeHuDzn5EUTHBJXEHm7a2MKJyYNHVFchcLQnG2YztKwsqaRxsn3HRB+NfWv3WtXLI+6Bw42aieN3BwugS7oj83beTvDPebVgUn5q9aJ/XZhZaWeITmE+A6iYkBUZTSH393vD+GHlk0uvdT6DRgkM6hW3r9KsFiZpc1kjpo2OmXwfyt5KvAAz34vzaeR7HjyRu+0hdY33Wih+UeRW9WK1ooAE32zuou5NDpYyReL/P2Mq5yk7iuOCK0jhK0ZhIoYtVVcYPFBYbUitKHHBdPoyjL9Hoa8yFdV17hLYczI1eWzSEkrF+p05MxgbNwKDiaNB8tu5Z2kntM99FfV9+l6kdtcVZmu1CLM+aUtB/ICSav5UTNPuT5uRS6vWvYHOmxqOYYoXF6xX7i920ov4ZDMw6DXC5WaJr3Y///9D4O85S81ruB3HD+YxWy9pzbMN+1IoT7U5cYPsUZizUcmYfNw6VPYjyREM3QnwYiD8Ct6R/0B1H404XL8/OtQuDi+bjlgiV2XS2EhbocSsERwpBqPAtPCKduwMkzC6NPk8hTRo8puqD1ZTrwTwQ2WrJ9wFzhEZYMZcYJfSPNKeXDtu9AyiSnu4=

Steps to reproduce

Open the link, the text of the inner component is immediately shown.

In 3.4.15 and 3.4.17, the text is not shown.

What is expected?

The text should not be shown, as the most top-level v-show has a "false" value.

What is actually happening?

The text is shown.

System Info

Reproducable at least in: Firefox 122.0, Firefox Developer 123.0b4, and Chrome 121.0.6167.161. 64bit machine.

[I don't think this is relevant for this bug, but who knows]

Any additional comments?

No response

avatar
Feb 15th 2024
avatar
Feb 15th 2024

In this case two vShow directive was applied to the same element, I'm not sure if it's a good practice, should we just merge two vShow directives (If do so, I prefer to respect the parent vShow), or we need to maintain separate state for each vShow directive? see #10344

avatar
Feb 25th 2024

Closed by mistake