Skip to main content

creating a tabbar in reactjs using reusable button class where user can pass any html content using jsx.

full working example in below link:-

sample contain three type of component's
1. Button
2. Slider
3. TabBar

https://stackblitz.com/edit/react-qjonsv?file=Hello.js

tab bar class code:-

export class TabBar extends Component
{
constructor(props)
{
this.state = { content: undefined };
super(props);
this.tabDataDiv = React.createRef();
}
componentDidMount()
{
this.state = {
content: this.props.data[0].tabData
};
this.setState(this.state);
}
updateTabData(data)
{
this.state = {
content: data
};
this.setState(this.state);
}
getTabs()
{
let tabArray=[];
for(let key in this.props.data)
{
tabArray.push(<GTbutton color="pink" label={this.props.data[key].name}
buttonClick={
()=>
{
this.updateTabData( this.props.data[key].tabData);
}
} key={key}/>);
}
return tabArray;
}
getTotalTabs()
{
const tabHeader=
<div>
<div className="flex-container">
{this.getTabs()}
</div>
<div ref={ this.tabDataDiv }>
{this.state.content}
</div>
</div>
return tabHeader;
}
render()
{
return(
<div>
{this.getTotalTabs()}
</div>
);
}
}

//and below are reusable button code=====================================================

export class GTbutton extends Component
{
constructor(props)
{
super(props);
}
PointerDown()
{
if(this.props.buttonClick)
{
this.props.buttonClick();
}
}

render()
{
return(
<div >
<button className="button" onClick={this.click=()=>
{
this.PointerDown();
}} style={{background:this.props.color}}>{this.props.label}</button>
</div>
);
}
}


Comments

Popular posts from this blog

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...

adding particles Effect in pixijs using https://pixijs.io/pixi-particles-editor/

adding particle in pixijs is very easy using the below tool more information can be found below https://github.com/pixijs/pixi-particles https://pixijs.io/pixi-particles-editor/ required packages  /// < reference path = "node_modules/pixi-particles/ambient.d.ts" /> import 'pixi-particles' code of particle delcare a     global variable   private emitter ?: Emitter ; const img = PIXI . Texture . from ( "./assets/images/particle.png" ); this . emitter = new Emitter ( this ,[ img ],{ "alpha" : { "start" : 0.62 , "end" : 0.39 }, "scale" : { "start" : 0.1 , "end" : 0.9 , "minimumScaleMultiplier" : 1.25 }, "color" : { "start" : "#ffff8f" , "end" : ...