mirror of
https://github.com/rowtype-yoga/purescript-nextjs.git
synced 2024-11-29 04:15:14 +03:00
35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# purescript-nextjs
|
|
|
|
Purescript FFI bindings to [Next.js](https://nextjs.org).
|
|
|
|
In order to bootstrap a Next.js project with Purescript you can use our [`purescript-nextjs-template`](https://github.com/rowtype-yoga/purescript-nextjs-template). You can find the information on how to get started in that repo.
|
|
|
|
## Usage
|
|
|
|
Once you have set up a Next.js project, you can use the FFI bindings here. This library provides bindings for many of the features described in the [Next.js documentation](https://nextjs.org/docs). We don't have FFI for everything yet, if you are missing something feel free to create an issue or even better: create a PR!
|
|
|
|
|
|
### Router
|
|
Here is an example how to use the router.
|
|
|
|
```purescript
|
|
import React.Basic.DOM.Simplified.Generated as R
|
|
import React.Basic.Hooks as React
|
|
import Next.Router as NextRouter
|
|
|
|
...
|
|
|
|
React.component "MyComponent" \props -> React.do
|
|
router <- NextRouter.useRouter
|
|
let
|
|
q :: { myQueryParam :: String }
|
|
q = query router
|
|
|
|
dispatchRoute = Router.push Router
|
|
pure $ R.button { onClick: handler_ $ dispatchRoute "/about" } "Click me"
|
|
```
|
|
|
|
## Credits
|
|
|
|
This lib has been heavily inspired by and initially extracted from [`next-purescript-example`](https://github.com/jonasbuntinx/next-purescript-example), which is licensed under [MIT](https://github.com/jonasbuntinx/next-purescript-example/blob/master/LICENSE).
|