背景介绍
jQuery中有个toggle()方法,可以切换元素的显示状态,在用vue时如果不引入jQuery如何实现这种效果?
使用场景
常见有三种场景:
1.控制页面中一个dom元素
2.控制页面中多个dom元素
3.控制页面中的dom元素是从服务端返回,且有多个
技术分析
1.一二场景下实现这种效果可以用v-if指令,通过设置true或false来控制dom的隐藏与显示。如果控制一个dom或多个dom我们可以在data中定义对应的flag,每次点击事件发生时 flag=!flag ,来切换flag的值。这样点击的dom可以做的显示或隐藏切换。
2.第一和第二种场景比较简单按照上述方式可以实现,第三种场景用这种方法就不行了,因为我们不知道会从服务端返回几个dom,所以也就不能具体的定义控制dom的flag变量。这种情况下要怎么实现点击从用服务端返回的数据渲染成的dom,来达到却换隐藏和显示效果?
实现方法
实现第三种场景可以用Vue.set()方法。具体实现方式如下:
1.第一步先定义一个data对象来接收从服务端返回的数据

data(){
  return {
    listAll:{}
  }
}

 

2.先定义个toggleShow()方法:

methods: {
  toggleShow(index){
    let obj = this.listAll[index]; // 找到点击的dom对象
    obj.hide = !obj.hide; // 向这个对象中添加 hide 属性
    this.$set(this.listAll, index, obj); // 把添加完hide 属性的新对象set()进data数据中
  }
}

  

3.在标签模板中调用toggleShow()方法

<div v-for="(item, index) in listAll" :key="index">
  <card @click.native="toggleShow(index)">
</card>
<div v-if="item.hide ? true:false">
  // 显示或隐藏区域
</div>
</div>

归纳总结

实现这种需要有两种方式
1.在data中定义固定的flag值,根据用切换flag值的方式来达到切换dom的显示或隐藏
2.使用Vue.set()方法,在异步请求会的数据中添加临时hide属性,来控制点击的dom元素隐藏或显示
如果不知道如何把从服务端接收的数据实时渲染的页面中,可以翻看这篇文章:
vue异步请求的数据怎样实时渲染到页面上?

vue实现 toggle显示隐藏效果的更多相关文章

  1. js鼠标滑动图片显示隐藏效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. vue+element-ui实现显示隐藏密码

    <template> <el-form :model="cuser_info" label-width="115px" label-posit ...

  3. jquery显示隐藏效果

    通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素toggle() 方法来切换 hide() 和 show() 方法. 1.hide()隐藏元素 $(se ...

  4. 基于jQuery实现页面滚动时顶部导航显示隐藏效果

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

  5. 兼容IE6及以上的导航栏子菜单栏滑过显示隐藏效果

    ;(function(window){        var li = document.getElementById('parentnav').getElementsByTagName('li')[ ...

  6. react better-scroll 编写类似手机chrome的header显示隐藏效果

    关键代码 const H = 50; // header的高度 const H2 = H / 2; let cy = 0; class Home extends Component { @observ ...

  7. WinForm实现类似QQ停靠,显示隐藏过程添加特效效果

    原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右 ...

  8. js进阶 13-1 jquery动画中的显示隐藏函数有哪些

    js进阶 13-1 jquery动画中的显示隐藏函数有哪些 一.总结 一句话总结:show(),hide(),toggle(),这三个. 1.jquery动画中显示隐藏效果函数有哪些? show()h ...

  9. jquery的toggle动画效果显示隐藏

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. Navicat 远程连接 Oracle11g 数据库报错 No listener 的问题

    1.首先确认已经启动 OracleOraDb11g_home1TNSListener 服务时,仍无法连接:   2.进入计算机系统属性中查看 Oracle 服务端计算机的全名:   3.进入 Orac ...

  2. Redis入门到高可用(十八)—— 主从复制

    一.单机有什么问题 1.机器故障 2.容量瓶颈 3.QPS瓶颈 二.主从复制 1.数据副本(高可用.分布式基础) 2.拓展读性能(读写分离)  简单总结: 三.主从复制配置 四.主从复制配置-实验演示 ...

  3. Tomcat的日志分割三种方法

    一.Tomcat的日志分割三种方法 一.方法一:用cronolog分割tomcat的catalina.out文件 Linux 日志切割工具cronolog详解:https://blog.csdn.ne ...

  4. dubbo注册到zookeeper

    zk注册中心安装,参见dubbo官网:http://dubbo.apache.org/books/dubbo-admin-book/install/zookeeper.html provider.xm ...

  5. windows程序设计 获取显示器分辨率

    我的显示器分辨率 /*--------------------------------------------------------------------------- scrsize.c -- ...

  6. bootstrapTable 合并单元格

    /** * 合并单元格 * @param data 原始数据(在服务端完成排序) * @param fieldName 合并属性名称 * @param colspan 合并列 * @param tar ...

  7. angularjs 的ng-disabled属性操作

    ng-readonly:不可用,但是可以提交数据 ng-disabled: 属性是控制标签是否可用(不可用且无法传值) 表达式控制: <input class="col-md-2 fo ...

  8. 利用tcp三次握手,使用awl伪装MAC地址进行多线程SYN洪水攻击

    SYN洪水攻击概述:SYN洪水攻击主要源于: tcp协议的三次握手机制tcp协议面向链接的协议SYN洪水攻击的过程:在服务端返回一个确认的SYN-ACK包的时候有个潜在的弊端,如果发起的客户是一个不存 ...

  9. Spring Boot IoC 容器初始化过程

    1. 加载 ApplicationContextInializer & ApplicationListener 2. 初始化环境 ConfigurableEnvironment & 加 ...

  10. Linux服务器---百科mediawiki

    Mediawiki         Mediawiki是一个强大的维基软件,可以实现页面编辑.图像和多媒体管理. 1.下载mediawiki软件(“https://www.mediawiki.org/ ...