V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lvming6816077
V2EX  ›  问与答

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

  •  
  •   lvming6816077 · 2020-10-29 13:59:23 +08:00 · 690 次点击
    这是一个创建于 1467 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    2 条回复    2020-10-29 16:18:32 +08:00
    imydou
        1
    imydou  
       2020-10-29 14:02:20 +08:00
    v-show 就是 display: none 标签还在
    jevonszmx
        2
    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 内容就暴露了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4981 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:10 · PVG 09:10 · LAX 17:10 · JFK 20:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.