An open API service indexing awesome lists of open source software.

https://github.com/postor/next-navigation

navigation component for next.js
https://github.com/postor/next-navigation

Last synced: 2 months ago
JSON representation

navigation component for next.js

Awesome Lists containing this project

README

        

# next-navigation

navigation for next, auto highlight menu item of current route

## usage

routes.js, use next-routes for both server side and client side route

```
const nextRoutes = require('next-routes')
const routes = module.exports = nextRoutes()

routes.add('index', '/')
routes.add('login', '/login')
routes.add('about', '/about')
routes.add('posts', '/posts')
routes.add('post', '/p/:title')
```

Header.js use nav in your page

```
import { default as routes, Link } from './routes'
import getNavigation from 'next-navigation'

const MyNav = getNavigation(routes)

export default (props)=>{

var { url } = props
var links = [{
linkProps: { route: "index" },
children: Home,
}, {
linkProps: { route: "about" },
children: About,
activeStyle: { color: 'blue', },
}, {
linkProps: { route: "posts" },
children: Posts,
checkIsActive: ({ pathname }) => {
return ('/post' === pathname) || ('/posts' === pathname)
}
}]

const activeStyle = {
color: 'red',
backgroundColor: '#ddd',
}

{
ulProps: {
className: 'mynav',
},
links,
activeStyle,
activeClassName: 'on',
url,
}

return (



{`
.nav-wrap :global(.mynav) {
border: 1px solid black;
}

.nav-wrap :global(.mynav .on a) {
font-weight: bold;
}
`}

)
}

```

## full code example

https://github.com/nextjs-boilerplate/nextjs-boilerplate