Skip to content

shortlist-digital/react-pushstate-anchor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React PushState Anchor

What is it?

React PushState Anchor provides three components for performing client-side push state navigation. There's no routing or complex state management. Just three components

<PushStateAnchorProvider />

Wrap your entire application or just the part of the application you want to use pushState in.

<PushStateAnchor />

A replacement for <a> tags that will use history.pushState under the hood.

import { PushStateAnchor as A } from 'react-pushstate-anchor'
<A href='/home'>Home</A>

PushStateLocation />

If you're updating history, you'll probably want to know when it's been updated. Use PushStateLocation component to get the current history location object, it'll update whenever a PushStateAnchor is clicked. A utitlity component that will provide the current history location using a render callback.

import { PushStateLocaation } from 'react-pushstate-anchor'

<PushStateLocation>
  {location => {
    <h1>The current pathname is {location.pathname}</h1>
  )}
</PushStateLocation>

Installation

Install from NPM, react-pushstate-anchor requires the history module as a peer dependency.

yarn add react-pushstate-anchor history

Usage

import React, { Component } from 'react'
import { PushStateAnchorProvider, PushStateLocation, PushStateAnchor as Psa } from 'react-pushstate-anchor'

class App extends Component {
  render() {
    return (
      <PushStateAnchorProvider>
        <h1>Push State Anchor</h1>        
        <Psa href='/home'><button>Home</button></Psa>
        <Psa href='/about'><button>About</button></Psa>
        <Psa href='/careers'><button>Careers</button></Psa>
        <PushStateLocation>
          {location => (
            <h1>{location.pathname}</h1>
          )}
        </PushStateLocation>
      </PushStateAnchorProvider>
    )
  }
}

export default App

react-pushstate-anchor will render a simple <a> anchor tag if JavaScript is unavailable.

About

Anchor's that update the browser's location with PushState.

Resources

Stars

Watchers

Forks

Packages

No packages published