React-router: Difference between revisions

From bibbleWiki
Jump to navigation Jump to search
Line 8: Line 8:
=Change Index.js=
=Change Index.js=
<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
...
import { BrowserRouter } from 'react-router-dom';
...
ReactDOM.render(
ReactDOM.render(
   <React.StrictMode>
   <React.StrictMode>
     <BrowserRouter>
     <BrowserRouter>
       <App/>
       <App />
     </BrowserRouter>,
     </BrowserRouter>
   </React.StrictMode>,
   </React.StrictMode>,
   document.getElementById(‘root’));
   document.getElementById('root')
);
</syntaxhighlight>
</syntaxhighlight>



Revision as of 22:35, 24 June 2021

Introduction

This page is about routering with React.

Setup

We need to install the pacakge

npm i react-router-dom

Change Index.js

...
import { BrowserRouter } from 'react-router-dom';
...
ReactDOM.render(
  <React.StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </React.StrictMode>,
  document.getElementById('root')
);

Transitions

You need to provide a class prefix in this case trans.

import {TransitionGroup, CSSTransition} from 'react-transition-group'

<TransactionGroup>
  <CSSTransition key={location.key} classNames={'trans'} timeout={1000}>
    <Switch location={location}>
     <Route path={`${match.url}`} component={LoremNumber} exact/>
     <Route path={`${match.url}/:id`} component={LoremNumber} exact/>
    </Switch>
</TransactionGroup>

And the CSS

.trans-enter {
   opacity: 0;
   z-index: 1;
}

.trans-exit {
   display: none
}

.trans-enter.trans-enter-active {
   opacity: 1;
   transition: opacity 1000ms ease-in;
}