• 小项目中怎么防止Vue的闪现画面效果



    前言

    这篇文章主要介绍了小项目中怎么防止Vue的闪现画面效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


    一句话总结

    HTML: 元素加上v-cloak

    CSS: [v-cloak]{display: none}
    
    • 1

    过程

    页面刚加载的时候胡子语法会显示出来。

    v-cloak是VueJS小型项目中提升用户体验简单且重要的方法。

    用法

    HTML中在你需要组织闪现的标签上加上v-cloak

    <div id="app">  
     <nav>blabla</nav>  
     <main v-cloak>{{text}}</main>  
    </div>
    
    • 1
    • 2
    • 3
    • 4

    CSS中给v-cloak设定样式,这个样式是只有【在vue实例编译结束前】应用的样式。

    [v-cloak]{  
     display: none;  
    }
    
    • 1
    • 2
    • 3

    原理

    我没读完源码,但是v-cloak的原理我大概理解一点:

    首先是CSS选择器,用[target]选择的是“带有 target 属性所有元素。”。可以点这里复习选择器。

    那么[v-cloak]选择出来的就是所有带有v-cloak属性的元素了。

    实例初始化完成之后,VueJS中会把Vue中特有的attribute去掉。在实例初始化完成之前,上面写的main的HTML代码实际是这样的:

    <main id="main" class="row" v-cloak="">
    
    • 1

    然后加上CSS,就把所有带有v-cloak的元素都display: block了。

    其实不止是v-cloak,你可以用v-if来试试,CSS里使用[v-if]{display:none},效果看起来是一样的。和v-cloak一样,v-if也是在实例编译完之后去掉。

    源码

    if (isRealElement) {  
     // mounting to a real element  
     // check if this is server-rendered content and if we can perform  
     // a successful hydration.  
     if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {  
     oldVnode.removeAttribute(SSR_ATTR);  
     hydrating = true;  
     }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    GIT 使用
    【信息安全】浅谈IDOR越权漏洞的原理、危害和防范:直接对象引用导致的越权行为
    MyBatis缓存
    js xlsx自定义样式导出
    [WC2021] 斐波那契——数论、斐波那契数列
    【算法学习】-【双指针】-【有效三角形的个数】
    GCP设置Proxy来连接Cloud SQL
    TortoiseGit安装和配置详细说明
    Tomcat(一) 系统架构
    Centos7部署单机版MongoDB
  • 原文地址:https://blog.csdn.net/m0_46529566/article/details/133554072