为什么80%的码农都做不了架构师?>>>   

1.显示隐藏效果

显示隐藏就需要结合我们的react事件处理,一般的显示隐藏可以用css的display处理:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';//设置组件
class ShowHide extends React.Component {constructor(props) {super(props);// 设置 initial statethis.state = {style: {display:"block",color:"red"}};}  showhide() {if(this.state.style.display==="block"){this.setState({style:{display:"none",color:"#000"}})}else{this.setState({style:{display:"block",color:"red"}})}}render() {return <div><button onClick={this.showhide.bind(this)}>显示隐藏</button><div style={this.state.style}>我被操作</div></div>}}ReactDOM.render(<div><ShowHide /></div>,document.getElementById('root')
);
registerServiceWorker();

非常简单,只要改变行内样式即可:

2.tab切换效果

其实tab切换不过是对显示隐藏效果的进一步扩展,我们改用操作类型切换处理这个效果,加一个状态计数:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';//设置组件
class Tab extends React.Component {constructor(props) {super(props);// 设置 initial statethis.state = {index: 0};}   tab(arg1,event) {this.setState({index:arg1})}render() {return <div><div><span onClick={this.tab.bind(this,0)}>1</span><span onClick={this.tab.bind(this,1)}>2</span><span onClick={this.tab.bind(this,2)}>3</span></div><div><div className={this.state.index==0?"show":"hide"}>C1</div><div className={this.state.index==1?"show":"hide"}>C2</div><div className={this.state.index==2?"show":"hide"}>C3</div></div></div>}}ReactDOM.render(<div><Tab /></div>,document.getElementById('root')
);
registerServiceWorker();

index.css

.show{ display:block;}
.hide{ display:none;}

我们审查元素:

3.循环json数据生成结构的tab切换

我们有这样一个json数据:

    constructor(props) {super(props);// 设置 initial statethis.state = {index: 0,json:[{title:"1",con:"C1"},{title:"2",con:"C2"},{title:"3",con:"C3"},{title:"4",con:"C4"},{title:"5",con:"C5"}]};}  

把传递的参数写活即可:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';//设置组件
class Tab extends React.Component {constructor(props) {super(props);// 设置 initial statethis.state = {index: 0,json:[{title:"1",con:"C1"},{title:"2",con:"C2"},{title:"3",con:"C3"},{title:"4",con:"C4"},{title:"5",con:"C5"}]};}   tab(arg1,event) {this.setState({index:arg1})}render() {var arrtitle=[];var arrcon=[];for(var i=0;i<this.state.json.length;i++){arrtitle.push(<span key={i} onClick={this.tab.bind(this,i)}>{this.state.json[i].title}</span>);arrcon.push(<div key={i} className={this.state.index===i?"show":"hide"}>{this.state.json[i].con}</div>);}return <div><div>{arrtitle}</div><div>{arrcon}</div></div>}}ReactDOM.render(<div><Tab /></div>,document.getElementById('root')
);
registerServiceWorker();

转载于:https://my.oschina.net/tbd/blog/1544759

react学习笔记10:显示隐藏效果和tab切换效果相关推荐

  1. react学习笔记一:入门级小白到脚手架(create-react-app)开发项目

    文章目录 前言 一.helloworld 二.React jsx 2.1 jsx 2.2 动态展示列表数据 2.3 虚拟dom创建的两种方式 2.4 代码实例 2.5 步骤 2.6 技术点 三.组件化 ...

  2. 史上最牛最强的linux学习笔记 10.shell基础

    史上最牛最强的linux学习笔记 10.shell基础 写在最前面: 本文是基于某站的视频学习所得,第一个链接如下: https://www.bilibili.com/video/BV1mW411i7 ...

  3. react组件卸载调用的方法_好程序员web前端培训分享React学习笔记(三)

    好程序员web前端培训分享React学习笔记(三),组件的生命周期 React中组件也有生命周期,也就是说也有很多钩子函数供我们使用, 组件的生命周期,我们会分为四个阶段,初始化.运行中.销毁.错误处 ...

  4. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

  5. JavaWeb黑马旅游网-学习笔记10【项目代码】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  6. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

    SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...

  7. springmvc学习笔记(10)-springmvc注解开发之商品改动功能

    springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...

  8. Linux学习笔记10

    Linux学习笔记10 Linux学习笔记10 正则表达式 源码包约定目录 Shell脚本约定目录 Shell脚本的创建与执行 date命令 同步时间 Shell脚本预设变量 与用户交互 数学计算 S ...

  9. HALCON 20.11:深度学习笔记(10)---分类

    HALCON 20.11:深度学习笔记(10)---分类 HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何在训练和推理阶段使用基于深度学习的分类. 基于深度学习的分类是一种对一 ...

  10. 台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning 注:本博客主要参照 http://blog.csdn.net/xzy_thu ...

最新文章

  1. 替换空格---StringBuilder
  2. 从零开始搭建 web 聊天室(一)
  3. aix系统32位和64位切换
  4. extern的关键字用法(C# 参考)
  5. office2013安装程序找不到office.zh-cn\officeMUI.xml 最新解决方案
  6. TIJ摘要:访问控制权限
  7. Docker上部署GitLab服务器
  8. 任务栏恢复添加快捷方式(即桌快出现箭头)
  9. 扫掠曲面二条引导线_说说国策下的三四线城市与会展
  10. 一、tkinter简介
  11. H3C DHCP中继实验
  12. linux服务器终止进程,结束linux 服务器系统中一个程序的多个进程
  13. IO编程 之 缓冲篇
  14. Java如何使用JDOM解析XML呢?
  15. 8086CPU标志位
  16. Android Studio设置签名密钥
  17. Pygame:外星人入侵
  18. Win10玩红警2突然就卡住不动?
  19. ppt制作的一些要点
  20. 字符串与数字相互转化

热门文章

  1. bgp 建立邻居发送的报文_HCIE笔记-------BGP邻居状态详解
  2. 【无标题】提示用户输入用户名,然后再提示输入密码,如果用户名 是“admin”并且密码是“88888”,则提示正确,否则,如果 用户名不是admin还提示用户用户名不存在,如果用户名是
  3. 自学python入门训练营 李笑来_如何看待李笑来发布的Python教程《自学是门手艺》?...
  4. 内存池算法 linux,内存池自动释放 - 梦想游戏 - OSCHINA - 中文开源技术交流社区...
  5. 编写if语句时then子句为空语句_Python入门 5——循环语句及条件判断
  6. seq()函数--R语言
  7. 支持各硬件平台的机器学习模型 AWS发表新开源项目
  8. ik6yjtkyt不规范价格
  9. 演示:思科设备子接口类型帧中继的配置
  10. 《Objective-C函数速查实例手册》——导读