• v-if的使用


    v-if、v-else、v-elseif

    v-if用于条件判断,判断Dom元素是否显示。

    1. DOCTYPE html>
    2. Document
    3. isFlag为true显示这个

    4. isShow为true是显示这个

    5. 小于18岁未成年
    6. 大于18岁小于60岁正值壮年
    7. 大于60岁,暮年
    1. 单独使用v-if,变量为布尔值,为true才渲染Dom

    2. v-show的变量也是布尔值,为true才显示内容,类似css的display

    3. v-if、v-else、v-else-if联合使用相当于if、elseif、else,但是在条件比较多的时候建议使用计算属性。

    v-if的demo

    ​ 在登录网站是经常可以选择使用账户名或者邮箱登录的切换按钮。要求点击按钮切换登录方式。

    1. DOCTYPE html>
    2. Document
  • ​ 使用v-ifv-else选择渲染指定的Dom,点击按钮对isUser变量取反。

    这里有个小问题,如果已经输入了账号了,此时想切换到邮箱输入,输入框未自己清空。

     

    ​ 这里需要了解一下vue底层操作,此时input输入框值被复用了。

    1. vue在进行DOM渲染是,处于性能考虑,会复用已经存在的元素,而不是每次都创建新的DOM元素。

    2. 在上面demo中,Vue内部发现原来的input元素不再使用,所以直接将其映射对应虚拟DOM,用来复用。

    3. 如果不希望出现类似复用问题,可以给对应的dom元素加上key值,并保证key不同。

      
      

    v-show

    ​ v-if 在首次渲染的时候,如果条件为假,什么也不操作,页面当作没有这些元素。当条件为真的时候,开始局部编译,动态的向DOM元素里面添加元素。当条件从真变为假的时候,开始局部编译,卸载这些元素,也就是删除。

    ​ v-show 不管条件是真还是假,第一次渲染的时候都会编译出来,也就是标签都会添加到DOM中。之后切换的时候,通过display: none;样式来显示隐藏元素。可以说只是改变css的样式,几乎不会影响什么性能。

    1. DOCTYPE html>
    2. Document
    3. v-show只是操作元素的style属性display

    4. v-if是新增和删除dom元素

  • 相关阅读:
    Spring Boot 手写starter!!!
    React【Context_作用、函数组件订阅Context、Fragments 、错误边界_概念 、错误边界_应用、Refs & DOM】(四)
    在阿里干了6年自动化测试,30岁即将退休的我,告诉你自动化测试工程师有多吃香...
    CF Round 479 (Div. 3)--D. Divide by three, multiply by two(离散化+拓扑排序)
    现代 PHP 新特性 —— 内置的 HTTP 服务器
    java中的interface(接口)
    使用 Containerlab + Kind 快速部署 Cilium BGP 环境
    Java 并发之 AQS 详解(下)
    Breach 1.0 靶机
    计算机毕业设计之java+springboot基于vue的网上书城管理系统
  • 原文地址:https://blog.csdn.net/m0_59359854/article/details/126126360