• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >vue > Vue.js使用v-show和v-if的注意事项

Vue.js使用v-show和v-if的注意事项

作者:farYang 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含vue.js,vue.js教程,vue.js官网,vue.js视频教程,vue.js下载等相关知识,farYang 希望在学习及工作中可以帮助到您

关于两者的区别,官网是这样说的:

在切换 v-if 块时,Vue.js 有一个局部编译/卸载过程,因为 v-if 之中的模板也可能包括数据绑定或子组件。v-if 是真实的条件渲染,因为它会确保条件块在切换当中合适地销毁与重建条件块内的事件监听器和子组件。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——在条件第一次变为真时才开始局部编译(编译会被缓存起来)。

相比之下,v-show 简单得多——元素始终被编译并保留,只是简单地基于 CSS 切换。

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

下面通过示例来看看在使用v-show与v-if时的注意事项

1、通过Vue.js中v-if指令来判断Vue中某个对象是否为空(该对象与后台传来的json数据绑定),从而判断是否显示分页条,在实际过程中发现,第一次请求后台数据,进行渲染过程后,分页条没有显示,但之后的请求后台数据再渲染,分页条都可正常显示。

问题如图所示:

2、原因

查看页面未渲染dom结构,发现上述分页条所在的div,没有出现页面中,这是由于vue组件初始化时,由于list为空导致id为example的div删除了,所以后续分页操作,针对是空dom对象,在第一次渲染结束后,由于list不为空,该div又加到该节点上,所以而后的分页条都可正常显示。

3、解决

将v-if指令替换为v-show指令,在条件为真的情况下,v-if将其所在dom及其子dom都删除,而v-show是将该dom加上了“display:none”,使其隐藏了起来。修改代码及效果如下

使用心得:

对于V-show,V-if如何选择,本人有以下建议:

1、对于管理系统的权限列表的展示,这里可以使用V-if来渲染,如果使用到V-show,对于用户没有的权限,在网页的源码中,仍然能够显示出该权限,如果用V-if,网页的源码中就不会显示出该权限。(在前后台分离情况下,后台不负责渲染页面的场景。)
2、对于前台页面的数据展示,这里推荐使用V-show,这样可以减少开发中不必要的麻烦。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

</div>

您可能想查找下面的文章:

  • vue打包项目后正确显示图片
  • Vue.js-----轻量高效的MVVM框架,组件利用Props传递数据)
  • Vue v-if v-show语法
  • vue.js双向数据绑定实现原理
  • Vue.js——60分钟快速入门
  • 基于Vue的文字跑马灯组件(npm 组件包)
  • 很棒的vue弹窗组件
  • 详解Vue使用命令行搭建单页面应用
  • vue.js实现价格格式化的方法
  • vue.js 左侧二级菜单显示与隐藏切换的实例代码

相关文章

  • 2017-05-30一篇看懂vuejs的状态管理神器 vuex状态管理模式
  • 2017-09-27Vue 搭建脚手架
  • 2017-05-30浅析vue component 组件使用
  • 2017-05-30使用vue.js编写蓝色拼图小游戏
  • 2017-05-30Vue.js实战之Vuex的入门教程
  • 2017-05-30vuejs在解析时出现闪烁的原因及防止闪烁的方法
  • 2017-05-30Vue.js教程之计算属性
  • 2017-05-30详解vue.js组件化开发实践
  • 2017-05-30vue2.0父子组件间通信的实现方法
  • 2017-05-30Vuejs第七篇之Vuejs过渡动画案例全面解析

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • vue.js将unix时间戳转换为自定义时间格式
    • 简单谈谈Vue 模板各类数据绑定
    • 详解vue嵌套路由-query传递参数
    • Vue.js每天必学之构造器与生命周期
    • Vue.js 2.0 和 React、Augular等其他前端框架大比拼
    • Vue.js一个文件对应一个组件实践
    • vue.js事件处理器是什么
    • vue图片加载与显示默认图片实例代码
    • Vue获取DOM元素样式和样式更改示例
    • 详解vue-cli + webpack 多页面实例应用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有