Skip to content

Difference between this and purescript-react? #134

Open
@Eugleo

Description

@Eugleo

Hey, I'm a total PS newbie, so I'm kinda lost in all of the purescript react options. There are the following libraries:

  • purescript-react
  • purescript-react-basic-classic
  • purescript-react-basic-hooks

There's mutiple comparison points between them, and I'm unsure in all of those points. Here I list my presumptions. Could somebody experienced with this library (-ies) shine some light on this and provide some proper comparisons?

Power

purescript-simple is just a base library for the -classic and -hooks implementations. It doesn't do anything by itself.

All of the rest are equivalent in 'power' — all are standalone React libraries that you can use to use external React components or write your own (in purescript). Not sure if you can write your own hooks with the -hooks lib.

Types

AFAIK purescript-react doesn't have typed props and elements (i.e. you can pass a href attribute to a div), not sure if react-basic-X is different.

Biggest issues

Why are the libraries struggling with? purescript-react seems to want to implement hooks (for a few years now), and lack of typed props also seems like a problem (at least to me), while purescript-simple's current biggest ambition seems to be adding proper documentation.

The implementations of purescript-simple seem to be documented, but rather sparsely (relying probably on the React docs) and don't have (m)any examples. Not sure if those libraries are feature-complete, at least when it comes to the common React use-cases, but it seems like it. The docs would then be the biggest problem.

Custom components

When it comes to creating custom components (i.e. not being limited to the default html ones) I think you can do this in all three, but purescript-react and purescript-react-basic-classic presumably generate class-based ones, and purescript-react-basic-hooks function-based ones. Not sure if that affects anything besides the generated JS (which shouldn't matter in 99% cases).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions