Skip to content

rodoabad/react-style-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

React Style Guide

Class vs. stateless

  • Unless you will be using any of React's lifecycle methods, then always favor stateless function components over classes. Although there's no performance benefits when it comes to using stateless function components, what it offers is a cleaner look when writing your components.
  • Always use a const and an arrow function for your stateless components. Arrow functions preserve the this keyword so whenever you are inside your component, you are 100% sure that the this keyword is for that specific component.
  • The component should always be on the next line after your arrow function.
// Bad
function MyComponent() {
  return (
    <div className='my-component'>
      {'Hello world'}
    </div>
    );
}

// Bad
class MyComponent extends Component {
  render() {
    return (
      <div className='my-component'>
        {'Hello world'}
      </div>;
      );
  }
}

// Bad
const MyComponent = () => <div className='my-component'>
    {'Hello world'}
  </div>;
// Good
const MyComponent = () =>
  <div className='my-component'>
    {'Hello world'}
  </div>;

Naming Convention

  • Always use .js as your extension instead of .jsx

  • Use lowercase and hypens for react component file names e.g. my-component.js

  • Use camelCase for instances

// Bad
const MyComponent = <MyComponent/>;

const my-component = <MyComponent/>;
// Good
const myComponent = <MyComponent/>;
  • Use PascalCase for React components
// Bad
import myComponent from './my-component';

import my-component from './my-component';
// Good
import MyComponent from './my-component';

Declaration

  • Always use a displayName when naming your components.
  • It should have the same name as your arrow function.
  • It should always be located immediately after your class or stateless component and separated by a new line.
// Bad
const MyComponent = () =>
  <div className='my-component'>
    {'Hello world'}
  </div>;
MyComponent.displayName = 'MyComponent';

// Bad
const MyComponent = () =>
  <div className='my-component'>
    {'Hello world'}
  </div>;

MyComponent.displayName = 'AnotherName';
// Good
const MyComponent = () =>
  <div className='my-component'>
    {'Hello world'}
  </div>;
  
MyComponent.displayName = 'MyComponent';
  • The top level element for your component should always have a className with the same name as your component separated by hyphens and in lowercase.
// Bad
const MyComponent = () =>
  <div>
    {'Hello world'}
  </div>;
  
// Bad
const MyComponent = () =>
  <div className='myComponent'>
    {'Hello world'}
  </div>;
  
// Bad
const MyComponent = () =>
  <div className='MyComponent'>
    {'Hello world'}
  </div>;
  
// Bad
const MyComponent = () =>
  <div className='my_component'>
    {'Hello world'}
  </div>;
// Good
const MyComponent = () =>
  <div className='my-component'>
    {'Hello world'}
  </div>;

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published