Skip to content

4.0.0

Compare
Choose a tag to compare
@farwayer farwayer released this 20 Apr 21:23
· 76 commits to master since this release

Major changes:

  • new syntax to make route structure more clean and simple
<Router location='/users/42'>
  <Index>
    <Users path='users'>
      <User path=':id'/>
    </Users>
  </Index>
<Router/>

If you have a good use case when the new syntax is inconvenient please let me know. It's not hard to add old behaviour as option, but it will make the code less simple and increase the size of the library.

  • router props will not be passed to components anymore
  • path params are direct properties now
    They were in params object before. In most cases things like id preferably to be direct properties. This is more expected, less error prone and makes code a bit cleaner. Sometimes it can help in optimization pure and memo components too. Please be care with possible property conflicts while updating to 4.0.0.
  • path-to-regexp upgraded to 6.1.0
    Check releases page to know major changes in a path regexp's. Tree shaking should work better with this lib now!
  • location and params will not be automatically URI-decoded anymore
    You can use decode and encode in options (see path-to-regexp readme)

Others

  • TypeScript definitions
  • genLocation (alias: loc), isPath, findPath, findPathValue utils
  • matching options
  • @babel/runtime removed from dependencies, lib deps on path-to-regexp only now
  • simplify, reduce generated code size
  • router components can be changed between renders
  • fix bug router used old component properties during next renders
  • undefined location will not throw error anymore
  • react-native package field
  • add source files to package
  • control library size with Size Limit