3

How can we create a completely different (mobile type layout) for a component (having a different desktop type layout) using ReactJs. (Not Responsive , responsive is something css has to take care of.) It should be different layout for the component i.e here Creating a page with a menu(header menu) for desktop screens which becomes a navigation sidebar with logo on small screen.

rajit
  • 144
  • 1
  • 2
  • 12

2 Answers2

14

Honestly, a simple resposive css layout may be the best solution, but the steps are to

1) Detect in JS if user in on mobile or desktop. For example this question has a good suggestion as an answer: Detecting a mobile browser

2) Use it to decide in your root component that which layout to use:

function isMobile() {
  // some js way to detect if user is on a mobile device
}

class Root extends Component {
  render() {
    return isMobile() ? ( <MobileLayout /> ) : ( <DesktopLayout /> )
  }
}
Community
  • 1
  • 1
jakee
  • 17,972
  • 3
  • 34
  • 40
5

Checkout react-responsive, You can use media query to render different component depending on device size.

Abhishek
  • 1,463
  • 2
  • 15
  • 25