v-if 和 v-show 的区别css
v-if只会在知足条件时才会编译,而v-show无论是否知足条件始终会编译,v-show的显示与隐藏只是简单的切换CSS的display属性。html
也就是说,在使用v-if时,若值为false,那么页面将不会有这个html标签生成。而v-show:不论其值是false仍是true,html元素都会存在,只是简单的切换css的display属性。vue
使用场景后端
通常来讲,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。所以,若是须要频繁切换 v-show 较好,若是在运行时条件不大可能改变 v-if 较好。 babel
另外性能
1.v-if 指令能够应用于template包装元素上,而v-show不支持template动画
2.将v-show应用在组件上时,由于指令的优先级 v-else 会出现问题,解决办法就是用另外一个 v-show 替换 v-else网站
1this 2spa 3 4 5 6 |
|
解决vue页面加载时出现{{message}}闪退
方法一:v-cloak
v-cloak指令和css规则如[v-cloak]{display:none}一块儿用时,这个指令能够隐藏未编译的Mustache标签直到实例准备完毕。
v-cloak 指令能够像css选择器同样绑定一套css样式而后这套css会一直生效到实例编译结束。
1 2 3 4 5 6 7 8 |
|
方法二:v-text
vue中咱们会将数据包在两个大括号中,而后放到HTML里,可是在vue内部,全部的双括号会被编译成textNode的一个v-text指令。
而使用v-text的好处就是永远更好的性能,更重要的是能够避免FOUC (Flash of Uncompiled Content) ,也就是上面与遇到的问题。
1 2 3 4 |
|
补充:
vue 页面加载进度条组件
页面加载进度条最初我是在youtube上看到的,后面几乎在各大网站上都能见到它的身影,可让用户在加载页面的时候不会对着彻底空白的页面发呆,提高用户体验
可是从开发角度讲,这种进度条在真实性上确实很难把握,由于在逻辑代码加载完成以前,咱们都不能统计到进度,而逻辑代码自身的进度也没法统计。另外,咱们不可能监控到全部资源的加载状况。
事实上,用户并非在意你的页面究竟加载了百分之几,而真正关心的是离加载完还有多久,以及这个空白页面是没有加载完,仍是加载完就是空白的。因此没咱们须要去“模拟”一个进度条,在后端数据返回前利用一个假的动画效果模拟加载,在数据返回后读完进度条而且隐藏。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
|