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

前端之家收集整理的这篇文章主要介绍了react学习笔记10:显示隐藏效果和tab切换效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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 state
		this.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();@H_301_7@ 

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

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 state
		this.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();@H_301_7@ 

index.css

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

我们审查元素:

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

我们有这样一个json数据:

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

把传递的参数写活即可:

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 state
		this.state = {
			index: 0,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();@H_301_7@ 原文链接:/react/302690.html

猜你在找的React相关文章