Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

97
Views
Passing BEM className in React

In the example below, how can I use the Post component in such a way that new posts and old posts have their own unique classes that follow BEM recommendations.

  1. Every element needs it's own unique className
  2. Cascading dependencies (.posts-new post or .posts-old post) should be avoided
  3. Each component defines a new Block on its outermost element

What I want is for the className to reflect new vs. old. Ideally, post-new and post-old.

One approach I've considered is to pass "new" or "old" via a props attribute (type="old", for example) to the Post component and then dynamically create the className (this post leverages such an approach). Is that the recommended approach for such a situation or is there another technique I'm not seeing?

// Display new posts
Posts className="posts-new"
  Post className="?"

// Display old posts
Posts className="posts-old"
  Post className="?"
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

In the end, I chose to use an attribute to pass "new" and "old" from the Posts component to the Post component.

<Posts type="new" />
<Posts type="old" />

Then, in the Post component I was able to add this to the className of my article tag via a template literal.

<article className={`post post-${props.type}`}>

From the feedback I've received from other devs, this is an acceptable approach.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!