iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何解决vue页面加载闪烁的问题
  • 209
分享到

如何解决vue页面加载闪烁的问题

2024-04-02 19:04:59 209人浏览 安东尼
摘要

这篇文章主要介绍了如何解决Vue页面加载闪烁的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。v-if 和 v-show 的区别v-if只

这篇文章主要介绍了如何解决Vue页面加载闪烁的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

v-if 和 v-show 的区别

v-if只会在满足条件时才会编译,而v-show不管是否满足条件始终会编译,v-show的显示与隐藏只是简单的切换CSS的display属性。

也就是说,在使用v-if时,若值为false,那么页面将不会有这个html标签生成。而v-show:不论其值是false还是true,html元素都会存在,只是简单的切换css的display属性。

使用场景

    一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 v-if 较好。  

另外

    1.v-if 指令可以应用于template包装元素上,而v-show不支持template

    2.将v-show应用在组件上时,因为指令的优先级 v-else 会出现问题,解决办法就是用另一个 v-show 替换 v-else

 // 错误
  <custom-component v-show="condition"></custom-component>
  <p v-else>这可能也是一个组件</p>
     // 正确做法
  <custom-component v-show="condition"></custom-component>
  <p v-show="!condition">这可能也是一个组件</p>

解决vue页面加载时出现{{message}}闪退

方法一:v-cloak

    v-cloak指令和css规则如[v-cloak]{display:none}一起用时,这个指令可以隐藏未编译的Mustache标签直到实例准备完毕。
    v-cloak 指令可以像css选择器一样绑定一套css样式然后这套css会一直生效到实例编译结束。

  eg:
    // <div> 不会显示,直到编译结束。
    [v-cloak]{
      display:none;
        }
    <div v-cloak>
       {{ message }}
    </div>

方法二:v-text

vue中我们会将数据包在两个大括号中,然后放到HTML里,但是在vue内部,所有的双括号会被编译成textnode的一个v-text指令。

而使用v-text的好处就是永远更好的性能,更重要的是可以避免FOUC (Flash of Uncompiled Content) ,也就是上面与遇到的问题。

eg:
  <span v-text="message"></span>
  <!-- same as -->
  <span>{{message}}</span>

补充:

vue 页面加载进度条组件

页面加载进度条最初我是在youtube上看到的,后面几乎在各大网站上都能见到它的身影,可以让用户在加载页面的时候不会对着完全空白的页面发呆,提升用户体验

但是从开发角度讲,这种进度条在真实性上确实很难把握,因为在逻辑代码加载完成之前,我们都不能统计到进度,而逻辑代码自身的进度也无法统计。另外,我们不可能监控到所有资源的加载情况。

事实上,用户并不是在乎你的页面究竟加载了百分之几,而真正关心的是离加载完还有多久,以及这个空白页面是没有加载完,还是加载完就是空白的。所以没我们需要去“模拟”一个进度条,在后端数据返回前利用一个假的动画效果模拟加载,在数据返回后读完进度条并且隐藏。

// progress-bar.vue
<template>
 <transition name="fade">
  <div class="progress-bar" v-if="isshow">
  </div>
 </transition>
</template>
<script type="text/babel">
 export default {
  data() {
   return {
    isShow: true, // 是否显示进度条
    val: 0, // 进度
   }
  },
  props: {
   
   step: {
    type: Number,
    default: 5,
   },
   
   initVal: {
    type: Number,
    default: 0,
   },
   
   stopVal: {
    type: Number,
    default: 80,
   },
   
   isOk: {
    type: Boolean,
    default: false,
   },
  },
  mounted() {
   // 初始化后加载进度,加载到百分之多少由stopVal决定
   this.val = this.initVal
   let step = this.step
   let timer = setInterval(() => {
    this.val = this.val + step
    this.$el.style.width = this.val + '%'
    // 父组件数据加载完前进度条最多到stopVal的这个百分值
    if (this.val >= this.stopVal) {
     clearInterval(timer)
     return
    }
   }, 10)
  },
  watch: {
   
   isOk() {
    let val = this.val
    let step = this.step
    let timer = setInterval(() => {
     val = val + step
     this.$el.style.width = val + '%'
     // 加载到百分百完成
     if (val >= 100) {
      // 关闭定时器
      clearInterval(timer)
      // 加载完成关闭进度条
      this.isShow = false
      // 加载完成的回调
      this.$emit('callback', 'load success')
      return
     }
    }, 10)
   },
  },
 }
</script>
<style lang="stylus" rel="stylesheet/stylus">
 .progress-bar {
  position fixed
  top 0
  height 6px
  width 0
  background-color #999
 }
 .fade {
  &-enter-active, &-leave-active {
   transition: all .3s
  }
  &-enter, &-leave-active {
   opacity: 0
  }
 }
</style>

感谢你能够认真阅读完这篇文章,希望小编分享的“如何解决vue页面加载闪烁的问题”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网JavaScript频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何解决vue页面加载闪烁的问题

本文链接: https://www.lsjlt.com/news/72936.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决vue页面加载闪烁的问题
    这篇文章主要介绍了如何解决vue页面加载闪烁的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。v-if 和 v-show 的区别v-if只...
    99+
    2024-04-02
  • 如何解决小程序页面闪烁问题
    解决小程序页面闪烁问题的方法:主要由于运行内存不够,微信对小程序图片渲染过大进行拦截,引起的小程序页面闪烁问题。优化办法:对大图片进行压缩,如果是网页路径可附加参数x-oss-process=image/auto-orient,1/resi...
    99+
    2024-04-02
  • 单页面Vue页面刷新出现闪烁问题及解决
    目录分析原因: 为什么刷新会出现闪烁的问题解决方法: 使用 v-cloak 用法关于Vue刷新页面问题如何解决 provide / inject 组合分析原因: 为什么刷新...
    99+
    2024-04-02
  • vue如何解决数据加载时,插值表达式闪烁问题
    目录数据加载,插值表达式闪烁问题1.在公共的css样式中加入2.在el挂载的标签上添加解决插值表达式渲染数据闪动先看代码出现的问题解决方法如下图数据加载,插值表达式闪烁问题 1.在公...
    99+
    2024-04-02
  • 如何解决vue渲染时闪烁{{}}的问题
    这篇文章主要介绍如何解决vue渲染时闪烁{{}}的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!v-if和v-show可能是日常开发中最常用的两个指令,虽然看上去两者功能是类似的...
    99+
    2024-04-02
  • vue刷新或加载出现闪烁如何解决
    本篇内容介绍了“vue刷新或加载出现闪烁如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在使用vue绑定数据的时候,渲染页面时会出现变...
    99+
    2023-07-04
  • vue解决刷新页面时会出现变量闪烁的问题
    目录刷新页面时会出现变量闪烁问题解决办法是: v-cloakvue刷新当前页面,且页面不闪烁场景:刷新当前页的方法provide/inject 组合介绍provide/inject ...
    99+
    2024-04-02
  • vue怎么解决数据加载时插值表达式闪烁的问题
    vue怎么解决数据加载时插值表达式闪烁的问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据加载,插值表达式闪烁问题1.在公共的css样式中加入[v-cloak] ...
    99+
    2023-06-28
  • 如何解决Vue中 v-if 和v-else-if页面加载出现闪现的问题
    这篇文章主要介绍了如何解决Vue中 v-if 和v-else-if页面加载出现闪现的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue...
    99+
    2024-04-02
  • vue中v-cloak怎么解决刷新或者加载出现闪烁的问题
    小编给大家分享一下vue中v-cloak怎么解决刷新或者加载出现闪烁的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在使用v...
    99+
    2024-04-02
  • 如何解决vue数据渲染出现闪烁的问题
    这篇文章主要介绍了如何解决vue数据渲染出现闪烁的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在使用vue进行数据渲染的时候发现当我不...
    99+
    2024-04-02
  • vuejs在解析时出现闪烁问题如何解决
    这篇文章主要介绍“vuejs在解析时出现闪烁问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vuejs在解析时出现闪烁问题如何解决”文章能帮助大家解决问题。原因: 在使用vuejs、ang...
    99+
    2023-07-04
  • C#控件的闪烁问题怎么解决
    这篇文章主要讲解了“C#控件的闪烁问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#控件的闪烁问题怎么解决”吧!最近对代码作了一些优化,试验后效果还可以,但是发现界面会闪烁,具体...
    99+
    2023-06-17
  • 如何解决两个div叠加触发事件发生闪烁的问题
    如何解决两个div叠加触发事件发生闪烁的问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。当鼠标移到div1上的时候,会出现div2。出现时d...
    99+
    2024-04-02
  • vue怎么解决首页加载慢的问题
    这篇文章主要讲解了“vue怎么解决首页加载慢的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么解决首页加载慢的问题”吧!1.路由懒加载{   &nb...
    99+
    2023-06-29
  • 如何解决vue页面缓存问题
    这篇文章给大家分享的是有关如何解决vue页面缓存问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。比如有一个列表页面,然后列表每项都有一个详情,之前用vue1.x的时候,页面缓存...
    99+
    2024-04-02
  • 如何解决ie8下input的title闪烁二次显示问题
    本篇内容介绍了“如何解决ie8下input的title闪烁二次显示问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • 如何解决Vue 路由切换时页面内容没有重新加载的问题
    小编给大家分享一下如何解决Vue 路由切换时页面内容没有重新加载的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第二次进入页...
    99+
    2024-04-02
  • 分享一个VUE页面声音+标题闪烁通知的组件
    本篇文章给大家带来了关于VUE的相关知识,其中主要跟大家分享一个VUE页面声音+标题闪烁通知的组件,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。一个VUE页面声音+标题闪烁通知的组件1、使用方法1.1 组件模板引用<PageNo...
    99+
    2023-05-14
    Vue
  • win8桌面图标一直闪烁如何解决
    如果Win8桌面图标一直闪烁,可能是系统的某些设置出现了问题。以下是一些常见的解决方法:1. 重新启动电脑:有时候重启系统可以解决一...
    99+
    2023-08-28
    win8
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作