Vue 表单场景使用 v-if 和是 v-show

2020-10-29 13:59:23 +08:00
 lvming6816077

例如表单逻辑有很多字段,但是这些字段有权限逻辑判断,即 A 用户看到的字段和 B 用户看到的字段不一样,所以就会涉及到使用 v-if 还是 v-show 来显示和隐藏一些字段。 但是涉及到提交时要做一些格式的校验,那这样就也需要做一下权限逻辑判断,如果用 v-if 的话就需要判断当前的表单控件对应的 model 是否存在,v-show 的话就不需要。 这里用哪种好一些呢?

656 次点击
所在节点    问与答
2 条回复
imydou
2020-10-29 14:02:20 +08:00
v-show 就是 display: none 标签还在
jevonszmx
2020-10-29 16:18:32 +08:00
官方文档:

v-if vs v-show
v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

按照你的需求,不建议用 v-show,因为 v-show 是基于 css 切换显示和隐藏,查看 dom 内容就暴露了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/719761

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX