DEV Community

Dimitri Marion
Dimitri Marion

Posted on • Originally published at dimitrimarion.com on

Simple React.js Boilerplate

I created a simple React.js boilerplate using Parcel. It’s a simple starter kit that you can easily extend. Only “react” and “react-dom” are installed, you decide which router or state management library or any other libraries you want to use.

Link to the boilerplate : Simple React.js Boilerplate

Getting started

You can click on “Use this template” to create another repository or clone the repository:

$ git clone https://github.com/dimitrimarion/react-parcel-boilerplate.git

Run the setup:

$ npm run setup

Start the development server:

$ npm run dev

Bundle the application for production:

$ npm run build

Useful packages

// Use this:
import dog from "@images/dog.jpg";
// Instead of that:
import dog from "../../../images/dog.jpg"
Enter fullscreen mode Exit fullscreen mode

You just need to add an alias in .babelrc:

[
   "module-resolver",
      {
        "root": ["./src"],
        "alias": {
          "@images": "./assets/images"
        }
      }
  ]
Enter fullscreen mode Exit fullscreen mode

Without class properties:

class Button extends Component {
  constructor(props) {
    super(props);
    this.state = { clicked: false };
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    this.setState({ clicked: true });
  }

  render() {
    return <button onClick={this.handleClick}>Click Me!</button>;
  }
}
Enter fullscreen mode Exit fullscreen mode

With class properties and arrow function, there is no need to bind this and the code is shorter:

class Button extends Component {
  state = { clicked: false };

  handleClick = () => this.setState({ clicked: true });

  render() {
    return <button onClick={this.handleClick}>Click Me!</button>;
  }
}
Enter fullscreen mode Exit fullscreen mode

Conclusion

This is a very simple boilerplate, it doesn’t include advanced things like state management or unit testing but I think it’s a good starting point for somebody learning React.js.

Top comments (0)