时间:2021-05-26
vue中v-if 和v-else-if在页面加载的时候,不满足条件的标签会加载然后再消失掉,如果要解决这个问题,案例如下:
vue html代码块:
<div id="divApp"> <div v-if="type === 'A'" v-cloak> A </div> <div v-else-if="type === 'B'" v-cloak> B </div> <div v-else-if="type === 'C'" v-cloak> C </div> <div v-else v-cloak> Not A/B/C </div></div>vue js代码块:
var divApp = new Vue({ el: '#divApp', data: { isActive: true, hasError: false, type: 'A' }, // 在 `methods` 对象中定义方法 methods: { }})css 代码:
[v-cloak] { display:none;}下面看下vue学习中v-if和v-show一起使用的问题
v-if和v-show一起使用
在开发项目过程中v-if和v-show一起使用时,接下面跟着的v-else会在页面上面显示两次 。代码如下:
<tbody class="sortable" id="sortTable"> <tr v-show="items.length" v-for="(item,index) in items" :item="item"> <td :id="item.objectId">{{index+1}}</td> <td>{{item.number}}</td> </tr> <tr v-else> <td colspan='2'>暂无数据</td> </tr></tbody>原因其实很简单,根据vue的文档描述:
当它们都处于同一节点时,v-for 的优先级高于 v-if。这意味着,v-if 将分别在循环中的每次迭代上运行。
也就是v-if会判断两次。
当然这样用也有它的好处,当你只想将某些项渲染为节点时,这会非常有用,如下:(以上只渲染 todos 中未完成的项。)
<li v-for="todo in todos" v-if="!todo.isComplete"> {{ todo }}</li>如果你的意图与此相反,是根据条件跳过执行循环,可以将 v-if 放置于包裹元素上(或放置于
总结
以上所述是小编给大家介绍的Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
目前前端框架太多,接触过angular、ember,现在开始倒腾vue此处用到v-if、v-else、v-show,v-if或让元素不在DOM上,v-show只
一、v-if显示单个元素注意else只能跟在v-if或者v-show后面Vue条件渲染显示我1显示我2varmyVue=newVue({el:".test",d
Vue.js使用v-cloak后仍显示变量的解决方法v-cloak这个指令是防止页面加载时出现vuejs的变量名而设计的,但有时候添加了这个指令仍会显示变量,这
1、问题原因因为第一调用渲染子组件后,不再对子组件的created进行调用2、解决方法用v-if将子组件包裹起来,因为v-if=false时可以将子组件销毁掉,
vue-router该如何使用忽然碰到一个常见的问题,明明可以使用v-if/v-show可以的解决的问题,有没有必要是使用vue-router来解决。比如常见的