233 words
1 minute
How to add hover events to any React component

I was playing around with a layout for a project and needed to do something unconventional. Before that day I always thought you could only hover over button and a tags, turns out I was wrong!

Code#

For this example we will use a p tag. We set the base colors of the p tag to black and when we hover, we change the color and the cursor to mimic what happens when a button or a tag is hovered.

There are 3 ways that we can achieve this

Styled-Components#

Styled Components is one of my favorite libraries to use to style html.

yarn add styled-components

npm install styled-components

import styled from 'styled-components'; const HoverText = styled.p` color: #000; :hover { color: #ed1212; cursor: pointer; } `

Further along in the class when its time to use your p tag you want to replace it with our HoverText component. Instead of

<p>Test</p>

You want to use

<HoverText>Test</HoverText>

Thats all, super easy!

Javascript Event Handlers#

I wouldn’t use this method for basic cases. Real useful for some more complicated scenarios

constructor(props) { super(props) this.state = { hover: false } } toggleHover() { this.setState({hover: !this.state.hover}) } render { var linkStyle; if (this.state.hover) { linkStyle = {color: '#ed1212',cursor: 'pointer'} } else { linkStyle = {color: '#000'} } return( <p style={linkStyle} onMouseEnter={this.toggleHover} onMouseLeave={this.toggleHover}>Test</p> ) }

CSS#

The CSS way is similar to styled-components. Inside your css file you just set it up like this

p { color: #000; :hover { color: #ed1212; cursor: pointer; } }
How to add hover events to any React component
https://edwardbeazer.com/posts/how-to-add-hover-events-to-any-react-component/
Author
Edward Beazer
Published at
2018-11-01