2.7.1 • Published 4 months ago

react-router-template-link v2.7.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

react-router-template-link

version npm downloads codecov MIT License

An intelligent link component above <a> element and <NavLink> from react-router. Also, it allows you to create link component from url template with type inference.

Inspired and strongly based on react-omni-link

English | 中文

import createFactory from 'react-router-template-link'

const {Link, createLink} = createFactory();

const UserLink = createLink<{userId: string}>('/user/{userId}');

<UserLink userId="xxx" />

const url = UserLink.toUrl({userId: 'xxx'});

// or use directly
<Link to="/user/xxx" />

options

createFactory accept some options listed below:

const {Link, createLink} = createFactory(options);

{string} options.basename: In some case Link is not under BrowserRouter which needs basename. It should only be equal to the basename of BrowserRouter, or it will lead to bugs. Default as ''

{Regexp} options.interpolate: Default as /{(\w+)}/g

{function} options.isExternal: A function to tell whether the link is external or not. External link will be open in new Tab. Default as when to.includes('://'') || to.startsWith('mailto:') returns true

{boolean} options.encodePathVariable: Configure whether pathVariable should be encoded. Such as encode a/b to a%2fb. Default as false

{boolean} options.encodeQueryVariable: Configure whether queryVariable should be encoded. Such as encode a/b to a%2fb. Default as true

{ReactNode} options.externalIcon: Show Icon when link is external. Default as null

props

Link or TemplatedLink accepts some props listed below:

{boolean} blank: Whether link opens in a new window. An external link will always open in a new window, which is determined by isExternal option.

className, style, children: Same as react-router-dom, When link is external, isActive will be considered as false

onClick, & others: Same as a

{string} hash: Add hash to TemplatedLink.

2.7.1

4 months ago

2.7.0

5 months ago

2.6.0

9 months ago

2.5.0

1 year ago

2.5.2

1 year ago

2.5.1

1 year ago

2.2.0

2 years ago

2.4.0

1 year ago

2.1.2

2 years ago

2.1.1

2 years ago

2.0.2

2 years ago

2.1.0

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.1.2

2 years ago

2.0.0-alpha.3

2 years ago

2.0.0-alpha.4

2 years ago

2.0.0-alpha.5

2 years ago

2.0.0-alpha.0

2 years ago

2.0.0-alpha.1

2 years ago

2.0.0-alpha.2

2 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

1.0.0-beta.3

3 years ago

1.0.0-beta.2

3 years ago

1.0.0-beta.1

3 years ago

1.0.0-beta

3 years ago