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.
            Asked
            
        
        
            Active
            
        
            Viewed 2.5k times
        
    2 Answers
23
            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 /> )
  }
}
8
            
            
        Checkout react-responsive, You can use media query to render different component depending on device size.
 
    
    
        Abhishek
        
- 1,694
- 2
- 16
- 27
 
     
    