From 9a94aad66cd6a700818bd2fdb375c0e9ed302ccc Mon Sep 17 00:00:00 2001 From: Bert0324 Date: Fri, 22 Jan 2021 22:08:47 +0800 Subject: [PATCH 1/3] feat: transition --- README.md | 149 ++-------------------------------------- index.d.ts | 54 +++++++++++---- package.json | 2 +- src/context/hooks.ts | 33 +++------ src/core/KeepAlive.tsx | 55 ++++++++++----- src/core/Router.tsx | 30 +++++--- src/index.ts | 5 +- src/utils/transition.ts | 82 ++++++++++++++++++++++ src/utils/utils.ts | 15 +++- test/async.tsx | 15 ++-- test/index.tsx | 7 +- 11 files changed, 222 insertions(+), 225 deletions(-) create mode 100644 src/utils/transition.ts diff --git a/README.md b/README.md index 8c8e064..ccf3ff2 100644 --- a/README.md +++ b/README.md @@ -10,160 +10,19 @@ A React Component for quick configuring route. ## Features -- Route Configuration like `react-router-config` +- Static Routes like `react-router-config` - Route Guard and Keep Alive like `Vue` - Simple Lazy Load +- Simple Transition Animation - Change `document.title` with Configuration -- Tiny, zlib packed Only 1KB +- Tiny, unpacked Only 13KB - Full Typescript Support -## Documents - -```ts -export type IBeforeRoute = (from: string, to: string) => boolean | undefined | void | Promise; -export type IAfterRoute = (from: string, to: string) => void; - -/** - * Router Configuration - * the path in children will be jointed with the path in parent - */ -export interface IPageRouter { - /** - * route path - */ - path: string; - /** - * document.title, if not set, will use original title in html - */ - name?: string; - /** - * the lazy load Component - */ - Component?: () => (Promise> | ComponentType); - /** - * children configuration - */ - children?: IPageRouter[]; - /** - * triggered before entering route - * - if return false, deny to enter route\ - * - after `beforeEach` - */ - beforeRoute?: IBeforeRoute; - /** - * triggered after entering route - * - if return false, deny to enter route - * - ahead of `afterEach` - */ - afterRoute?: IAfterRoute; - /** - * maintains component state and avoids repeated re-rendering for the route - * - default is `false` - * - its priority is higher than `keepAlive` in props - */ - keepAlive?: boolean; -} - -/** - * `react-routers` props - */ -export interface IRouterProps { - /** - * routers config - */ - routers: IPageRouter[]; - /** - * A fallback react tree to show when a Suspense child (like React.lazy) suspends, and before entering the route - */ - fallback?: ComponentType<{ from: string; to: string }>; - /** - * redirect path - */ - redirect?: string; - /** - * css style - */ - style?: CSSProperties; - /** - * triggered before entering route - * - if return false, deny to enter route - * - ahead of any `beforeRoute` - */ - beforeEach?: IBeforeRoute; - /** - * triggered after entering route - * - if return false, deny to enter route - * - after any `afterRoute` - */ - afterEach?: IAfterRoute; - /** - * do maintains component state and avoids repeated re-rendering for each route - * - default is `false` - */ - keepAlive?: boolean; - /** - * switch - * - default is `true` - */ - switchRoute?: boolean; -} -``` - ## Demo -Install `react-routers`: - -- `yarn add react-routers` -```tsx -import { FC } from 'react'; -import { Link, BrowserRouter } from 'react-router-dom'; -import { Routers } from 'react-routers'; -import { Skeleton } from 'antd'; - -const asyncTask = () => new Promise(resolve => setTimeout(() => resolve(), 1000)); +## Documents -export const IRouters: FC = () => { - return ( - - (await import('./PageComponent')).PageComponent, - afterRoute: (from, to) => { - console.log(from ,to); - } - }, - { - path: '/page2', // test/page2 - name: 'page2', - Component: () => () => page2, - beforeRoute: (from, to) => { - console.log(from ,to); - return false; - }, - children: [ - { - path: '/:page', // test/page2/:page - name: 'page3', - Component: async () => () => <>page3, - } - ] - } - ]} - beforeEach={async (from, to) => { - await asyncTask(); - console.log('beforeEach', from, to); - }} - redirect='/page1' - fallback={() => } - /> - - ); -}; -``` ## Development diff --git a/index.d.ts b/index.d.ts index 83e78bf..4952ca5 100644 --- a/index.d.ts +++ b/index.d.ts @@ -9,6 +9,9 @@ interface IConfig { path: string; switchRoute: boolean; transition?: ITransition; + delay: number; + haveBeforeEach: boolean; + ready: boolean; } export interface IRefObj { @@ -20,10 +23,14 @@ export interface IRefObj { [path: string]: IConfig; }; actives: { - [path: string]: (() => void)[]; + [path: string]: { + [id: string]: ActiveHook + }; }; deactives: { - [path: string]: (() => void)[]; + [path: string]: { + [id: string]: ActiveHook; + } }; matched: boolean[]; } @@ -34,7 +41,14 @@ export type ITransition = { match: CSSProperties; notMatch: CSSProperties; trans: CSSProperties; + /** + * + * - default is `500`ms + */ + delay?: number; }; +export type EffectHook = () => void; +export type ActiveHook = () => EffectHook | void | undefined; /** * Router Configuration @@ -129,7 +143,7 @@ export interface IRouterProps { transition?: ITransition; /** * loading delay - * - default is `500`ms + * - default is `100`ms */ delay?: number; } @@ -143,11 +157,7 @@ declare module 'react-routers' { /** * triggered when first entering route and every time active it */ - const useActive: (effect: () => void) => void; - /** - * triggered every time unmount route - */ - const useDeActive: (effect: () => void) => void; + const useActive: (effect: ActiveHook) => void; /** * `useParams` like */ @@ -156,10 +166,26 @@ declare module 'react-routers' { * get current configuration */ const useRefContext: () => IRefObj | null; - export { Routers, useActive, useDeActive, useParams, useRefContext }; + const LeftFade: ITransition; + const RightFade: ITransition; + const TopFade: ITransition; + const BottomFade: ITransition; + const LeftSlide: ITransition; + const RightSlide: ITransition; + const TopSlide: ITransition; + const BottomSlide: ITransition; + export { + Routers, + useActive, + useParams, + useRefContext, + LeftFade, + RightFade, + TopFade, + BottomFade, + LeftSlide, + RightSlide, + TopSlide, + BottomSlide + }; } - -declare module '*.module.less' { - const styles: { readonly [key: string]: string }; - export default styles; -} \ No newline at end of file diff --git a/package.json b/package.json index b265a1a..8322756 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-routers", - "version": "2.0.0", + "version": "2.0.1", "description": "router component", "author": "yuchen.huang <'yuchenhuang0324@gmail.com'>", "main": "dist/main.min.js", diff --git a/src/context/hooks.ts b/src/context/hooks.ts index 96a860e..473ae1c 100644 --- a/src/context/hooks.ts +++ b/src/context/hooks.ts @@ -1,5 +1,6 @@ import { useEffect } from "react"; import { useHistory } from "react-router"; +import { ActiveHook } from "../../index.d"; import { notExistPath } from "../utils/constants"; import { findMatch, findMatchPath } from "../utils/utils"; import { useRefContext } from "./context"; @@ -8,48 +9,30 @@ import { useRefContext } from "./context"; * push active callback to ref * @param effect */ -export const useActive = (effect: () => void) => { +export const useActive: (effect: ActiveHook) => void = effect => { const data = useRefContext()!; const history = useHistory(); useEffect(() => { const key = findMatchPath(data.map, history.location.pathname); + const id = `${Math.random()}`; if (key !== notExistPath) { if (!data.actives[key]) { - data.actives[key] = []; + data.actives[key] = {}; } - data.actives[key].push(effect); + data.actives[key][id] = effect; } return () => { if (key !== notExistPath) { - data.actives[key] = data.actives[key]?.filter(item => item !== effect); + delete data.actives[key]?.[id]; + delete data.deactives[key]?.[id]; } }; }, []); }; /** - * push deactive callback to ref - * @param effect + * replacement for `useParams` */ -export const useDeActive = (effect: () => void) => { - const { deactives, map } = useRefContext()!; - const history = useHistory(); - useEffect(() => { - const key = findMatchPath(map, history.location.pathname); - if (key !== notExistPath) { - if (!deactives[key]) { - deactives[key] = []; - } - deactives[key].push(effect); - } - return () => { - if (key !== notExistPath) { - deactives[key] = deactives[key]?.filter(item => item !== effect) - } - }; - }, []); -}; - export const useParams = () => { const history = useHistory(); const { map } = useRefContext()!; diff --git a/src/core/KeepAlive.tsx b/src/core/KeepAlive.tsx index 0b87d5c..7a9818f 100644 --- a/src/core/KeepAlive.tsx +++ b/src/core/KeepAlive.tsx @@ -1,19 +1,20 @@ import React, { FC, memo, useEffect, useState } from 'react'; import { matchPath, useHistory } from 'react-router'; import { useRefContext } from '../context/context'; -import { IConfig } from '../../index.d'; -import { filterMatchRoutes } from '../utils/utils'; +import { EffectHook } from '../../index.d'; +import { filterMatchRoutes, getWithinTime } from '../utils/utils'; -export const KeepAlive: FC<{ config: IConfig }> = memo(({ children, config }) => { +export const KeepAlive: FC<{ path: string }> = memo(({ children, path }) => { const history = useHistory(); const [match, setMatch] = useState(false); const [firstMatched, setFirstMatched] = useState(false); const [delayMatch, setDelayMatch] = useState(false); const data = useRefContext()!; + const config = data.map[path]; const checkMatch = () => { // after history change callback in router - setTimeout(() => { + setTimeout(async () => { let currentMatch = !!matchPath(history.location.pathname, { path: config.path, exact: true @@ -32,15 +33,35 @@ export const KeepAlive: FC<{ config: IConfig }> = memo(({ children, config }) => if (currentMatch && !firstMatched) { setFirstMatched(true); } - - if (!firstMatched) { + + // wait until async component is ready + const ready = config?.ready || await getWithinTime(() => config?.ready); + + if (ready) { + // call active hooks if (currentMatch) { - filterMatchRoutes(data.actives, config.path).forEach(effects => effects.forEach(effect => effect())); + let collectDeactives = false; + if (!data.deactives[config.path]) { + collectDeactives = true; + data.deactives[config.path] = {}; + } + filterMatchRoutes(data.actives, config.path).forEach( + effects => Object.keys(effects).forEach(key => { + const deactive = effects[key]?.(); + if (collectDeactives && Object.prototype.toString.call(deactive) === '[object Function]') { + data.deactives[config.path][key] = deactive as EffectHook; + } + }) + ); } else if (lastMatched) { - filterMatchRoutes(data.deactives, config.path).forEach(effects => effects.forEach(effect => effect())); + filterMatchRoutes(data.deactives, config.path).forEach( + effects => Object.keys(effects).forEach( + key => data.deactives[config.path]?.[key]?.() + ) + ); } } - }); + }, (config.haveBeforeEach || !!config.beforeRoute) ? config.delay : 0); }; useEffect(() => { @@ -49,9 +70,7 @@ export const KeepAlive: FC<{ config: IConfig }> = memo(({ children, config }) => }, []); useEffect(() => { - setTimeout(() => { - setDelayMatch(match); - }, 500); + setTimeout(() => setDelayMatch(match), config.transition?.delay || 500); }, [match]); const transitionStyle = { @@ -59,24 +78,24 @@ export const KeepAlive: FC<{ config: IConfig }> = memo(({ children, config }) => ...(match ? config.transition?.match : config.transition?.notMatch) }; + const actualDisplay = config.transition ? delayMatch : match; + return ( <> {config.alive ? <> {firstMatched ?
{children}
: null} : -
- {(config.transition ? delayMatch : match) ? children : null} +
+ {actualDisplay ? children : null}
} ); -}, (prev, next) => JSON.stringify(prev.config) === JSON.stringify(next.config)); \ No newline at end of file +}, (prev, next) => prev.path === next.path); \ No newline at end of file diff --git a/src/core/Router.tsx b/src/core/Router.tsx index 2ad829b..9d2bcd5 100644 --- a/src/core/Router.tsx +++ b/src/core/Router.tsx @@ -1,7 +1,7 @@ import React, { lazy, Suspense, FC, memo, useState, useMemo, useEffect, useCallback } from 'react'; import { Route, withRouter, useHistory } from 'react-router-dom'; import { throttle } from 'lodash-es'; -import { IPageRouter, IRouterProps } from '../..'; +import { IPageRouter, IRouterProps } from '../../index.d'; import { Provider, useRefContext } from '../context/context'; import { KeepAlive } from './KeepAlive'; import { findMatchRoute } from '../utils/utils'; @@ -14,9 +14,11 @@ const Router: FC = memo(({ routers, fallback, redirect, beforeEach const [loading, _setLoading] = useState(true); const data = useRefContext()!; + const delayLoad = delay || 100; + const setLoading = useCallback(throttle((_loading: boolean) => { _setLoading(_loading); - }, (delay || 500), { leading: false, trailing: true }), [_setLoading]); + }, delayLoad, { leading: false, trailing: true }), [_setLoading]); const Loading = useMemo(() => { const Fallback = fallback; @@ -37,14 +39,10 @@ const Router: FC = memo(({ routers, fallback, redirect, beforeEach */ const Page = (params: IPageRouter) => { if (!params.Component) return false; - const waitForComponent = async () => { - const component = await params.Component!(); - return component; - }; - const Component = lazy(async () => ({ default: withRouter(await waitForComponent()) })); let alive = false; if (keepAlive !== undefined) alive = keepAlive; if (params.keepAlive !== undefined) alive = params.keepAlive; + data.map[params.path] = { name: params.name || '', beforeRoute: params.beforeRoute, @@ -53,11 +51,23 @@ const Router: FC = memo(({ routers, fallback, redirect, beforeEach selfMatched: [], path: params.path, switchRoute, - transition: params.transition || transition + transition: params.transition || transition, + delay: delayLoad, + haveBeforeEach: !!beforeEach, + ready: false }; + + const waitForComponent = async () => { + const asyncTask = () => new Promise(resolve => setTimeout(() => resolve(), 2000)); + await asyncTask(); + const component = await params.Component!(); + setTimeout(() => data.map[params.path].ready = true); + return component; + }; + const Component = lazy(async () => ({ default: withRouter(await waitForComponent()) })); return ( - + @@ -78,7 +88,7 @@ const Router: FC = memo(({ routers, fallback, redirect, beforeEach return acc; }; return routers.reduce((acc, crr) => createPage(acc, crr), []); - }, [JSON.stringify({ keepAlive, routers, switchRoute })]); + }, [keepAlive, routers, switchRoute]); const notEnterHandler = (from: string, redirect?: boolean) => { data.isReplace = true && !redirect; diff --git a/src/index.ts b/src/index.ts index b087e46..9a26912 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ export { Routers } from './core/Router'; -export { useActive, useDeActive, useParams } from './context/hooks'; -export { useRefContext } from './context/context'; \ No newline at end of file +export { useRefContext } from './context/context'; +export * from './context/hooks'; +export * from './utils/transition'; \ No newline at end of file diff --git a/src/utils/transition.ts b/src/utils/transition.ts new file mode 100644 index 0000000..b5fae92 --- /dev/null +++ b/src/utils/transition.ts @@ -0,0 +1,82 @@ +import { ITransition } from "../../index.d"; + +const Slide = { + match: { + transform: 'translateX(0)' + }, + trans: { + transition: 'all 500ms ease' + }, + delay: 500 +}; + +const Fade = { + ...Slide, + match: { + ...Slide.match, + opacity: 1, + }, + notMatch: { + opacity: 0, + } +}; + +export const LeftFade: ITransition = { + ...Fade, + notMatch: { + ...Fade.notMatch, + transform: 'translateX(-30vw)' + } +}; + +export const RightFade: ITransition = { + ...Fade, + notMatch: { + ...Fade.notMatch, + transform: 'translateX(30vw)' + } +}; + +export const TopFade: ITransition = { + ...Fade, + notMatch: { + ...Fade.notMatch, + transform: 'translateY(-30vh)' + } +}; + +export const BottomFade: ITransition = { + ...Fade, + notMatch: { + ...Fade.notMatch, + transform: 'translateY(30vh)' + } +}; + +export const LeftSlide: ITransition = { + ...Slide, + notMatch: { + transform: 'translateX(-100vw)' + } +}; + +export const RightSlide: ITransition = { + ...Slide, + notMatch: { + transform: 'translateX(100vw)' + } +}; + +export const TopSlide: ITransition = { + ...Slide, + notMatch: { + transform: 'translateY(-100vh)' + } +}; + +export const BottomSlide: ITransition = { + ...Slide, + notMatch: { + transform: 'translateY(100vh)' + } +}; diff --git a/src/utils/utils.ts b/src/utils/utils.ts index d3ba205..c38ea8f 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -1,7 +1,7 @@ import { match, matchPath } from "react-router"; import { notExistPath } from "./constants"; -const getOptions = path => ({ +const getOptions = (path: string) => ({ path, exact: true }); @@ -30,3 +30,16 @@ export const findMatch = (map: { [key: string]: any }, path: string) => return acc; }, undefined as unknown as match); }; + +export const setTimeoutTask = (task: () => T) => new Promise(resolve => setTimeout(() => { + resolve(task()); +}, 100)); + +export const getWithinTime = async (task: () => T) => { + const timeout = 10000; + const start = Number(new Date()); + while (Number(new Date()) - start < timeout) { + const res = await setTimeoutTask(task); + if (res) return res; + } +}; \ No newline at end of file diff --git a/test/async.tsx b/test/async.tsx index 89770de..0ff9db6 100644 --- a/test/async.tsx +++ b/test/async.tsx @@ -1,6 +1,6 @@ import React, { FC, useState } from 'react'; import { Link } from 'react-router-dom'; -import { useActive, useDeActive } from '../src/index'; +import { useActive, useRefContext } from '../src/index'; const Sub: FC = () => { @@ -18,19 +18,22 @@ export const AsyncComponent: FC = () => { const data = Number(new Date()); useActive(() => { console.log('page1 active', data); + return () => { + console.log('page1 deactive', data); + } }); - useDeActive(() => { - console.log('page1 deactive', data); - }); + + const ref = useRefContext(); + console.log(ref) return ( - <> +
page1 page2
{show && }
- +
) } \ No newline at end of file diff --git a/test/index.tsx b/test/index.tsx index 70d9d90..d467867 100644 --- a/test/index.tsx +++ b/test/index.tsx @@ -1,7 +1,7 @@ import React, { FC, useEffect, useState } from 'react'; import { render } from 'react-dom'; import { Link, BrowserRouter } from 'react-router-dom'; -import { Routers, useParams } from '../src'; +import { TopSlide, Routers, useParams, useRefContext } from '../src'; import { LoadingPage } from './loading'; const asyncTask = () => new Promise(resolve => setTimeout(() => resolve(), 2000)); @@ -17,6 +17,7 @@ const App: FC = () => { return ( { }, { path: '/page2', // test/page2 - Component: async () => () => page2, + Component: async () => () =>
page2
, children: [ { path: '/:page', // test/page2/page3 @@ -51,7 +52,7 @@ const App: FC = () => { } ]} beforeEach={async (from, to) => { - await asyncTask(); + // await asyncTask(); console.log('beforeEach', from, to, data); }} redirect='/page1' From 5e11953744e9ade48a474c8f4a12d21b1ff26571 Mon Sep 17 00:00:00 2001 From: Bert0324 Date: Fri, 22 Jan 2021 23:31:34 +0800 Subject: [PATCH 2/3] docs --- README.md | 190 ++++++++++++++++++++++++++++++++++++++++++++++----- package.json | 3 +- yarn.lock | 7 ++ 3 files changed, 183 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index ccf3ff2..9681e4c 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,189 @@ -# react-routers +# React Routers -[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Bert0324/react-routers/blob/main/LICENCE) -[![npm version](https://badge.fury.io/js/react-routers.svg)](https://www.npmjs.com/package/react-routers) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Bert0324/react-routers/pulls) -[![star this repo](https://githubbadges.com/star.svg?user=bert0324&repo=react-routers&style=default)](https://github.com/bert0324/react-routers) -[![fork this repo](https://githubbadges.com/fork.svg?user=bert0324&repo=react-routers&style=default)](https://github.com/bert0324/react-routers/fork) +

fre logo

+

React Routers

+

🌠A React Component for quick configuring route

+

+Build Status +Code Coverage +npm-v +npm-d +brotli +

-A React Component for quick configuring route. +## ⭐ Features -## Features - -- Static Routes like `react-router-config` -- Route Guard and Keep Alive like `Vue` -- Simple Lazy Load +- Static Routes like [`react-router-config`](https://github.com/ReactTraining/react-router/tree/master/packages/react-router-config) +- Route Guard and `keep-alive` like `Vue` +- Auto Lazy Load - Simple Transition Animation - Change `document.title` with Configuration -- Tiny, unpacked Only 13KB +- Tiny Size, unpacked 13KB - Full Typescript Support -## Demo +## 🏠 Installation + +- `yarn add react-routers` + +## 🎠 Example & Playground + +An example and playground of `react-routers` in [HERE](https://stackblitz.com/edit/react-routers-demo). + +## 📑 API + +### Props of `Routers` + +```ts +import { Routers } from 'react-routers'; +``` + +#### `routers` + +The Router configuration, the path in children will be jointed with the path in parent. Its type is as below: + +```ts +interface IPageRouter { + /** + * route path + */ + path: string; + /** + * document.title, if not set, will use original title in html + */ + name?: string; + /** + * the lazy load Component + */ + Component?: () => (Promise> | ComponentType); + /** + * children configuration + */ + children?: IPageRouter[]; + /** + * triggered before entering route + * - if return false, deny to enter route\ + * - after `beforeEach` + */ + beforeRoute?: IBeforeRoute; + /** + * triggered after entering route + * - if return false, deny to enter route + * - ahead of `afterEach` + */ + afterRoute?: IAfterRoute; + /** + * maintains component state and avoids repeated re-rendering for the route + * - default is `false` + * - its priority is higher than `keepAlive` in props + */ + keepAlive?: boolean; + /** + * transition animation + */ + transition?: ITransition; +} +``` + +#### `fallback` + +A fallback react tree to show when a Suspense child (like React.lazy) suspends, and before entering the route. It must be a React Component. + +#### `redirect` + +redirect path. + +#### `beforeEach` + +triggered before entering route + +- if return false, deny to enter route +- ahead of any `beforeRoute` + +#### `afterEach` + +triggered after entering route + +- if return false, deny to enter route +- after any `afterRoute` +#### `keepAlive` -## Documents +do maintains component state and avoids repeated re-rendering for each route +- default is `false` -## Development +#### `switchRoute` + +Do select only one route like `` + +- default is `true` + +#### `transition` + +transition animation. Its type is as below: + +```ts +type ITransition = { + /** + * the css style after matched + */ + match: CSSProperties; + /** + * the css style after unmatched + */ + notMatch: CSSProperties; + /** + * the css style of transition + */ + trans: CSSProperties; + /** + * keep component after unmatched + * - default is `500`ms + */ + delay?: number; +}; +``` + +or directly use embedded animation objects. + +### Hooks + +#### `useActive` + +The hook triggered when the route match the component's route in configuration. + +```ts +import { useActive } from 'react-routers'; + +useActive(() => { + /* Called when the component is activated. */ + return () => { + /* Called when the component is deactivated. */ + } +}); +``` + +#### `useParams` + +A wrapped function of [`useParams`](https://reactrouter.com/web/api/Hooks/useroutematch). Notice, if you use `useParams` of `react-router` in a `react-routers` controlled component, you can't get correct match, as `react-router` don't the configuration configured in `react-routers`. + +```ts +import { useParams } from 'react-routers'; + +// /blog/:slug +const { slug } = useParams<{ slug?:string }>(); +``` + +### Embedded Animation + +The objects which can be put in `transition`, includes `LeftFade`, `RightFade`, `TopFade`, `BottomFade`, `LeftSlide`, `RightSlide`, `TopSlide`, `BottomSlide`. + +## 💻 Development - `yarn` - `preview=true yarn dev` - `yarn build` + +## 🍧 License + +React Routers is [MIT licensed](https://github.com/Bert0324/react-routers/blob/main/LICENCE). diff --git a/package.json b/package.json index 8322756..63aa197 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-routers", - "version": "2.0.1", + "version": "2.0.2", "description": "router component", "author": "yuchen.huang <'yuchenhuang0324@gmail.com'>", "main": "dist/main.min.js", @@ -75,6 +75,7 @@ "react-dom": "^17.0.1", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", + "react-routers": "^2.0.2", "style-loader": "^2.0.0", "thread-loader": "^3.0.1", "ts-loader": "^8.0.12", diff --git a/yarn.lock b/yarn.lock index 9deb311..ac93c28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8132,6 +8132,13 @@ react-router@5.2.0, react-router@^5.2.0: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" +react-routers@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/react-routers/-/react-routers-2.0.2.tgz#7ac6f616c7101ae420b37740976ba185e0cbd55a" + integrity sha512-4zSKHT9KDTtXrlloo9X1OGZ3KwJdviiYJVCfvEc8S+xkMBqcjOwI0UTbS7WmNh5ZpdlR+ZELYTXXQPsGlrh5WQ== + dependencies: + lodash-es "^4.17.20" + react@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" From d69d44a40867f8d068077bf6853e36c5cc4fffdc Mon Sep 17 00:00:00 2001 From: Bert0324 Date: Fri, 22 Jan 2021 23:33:40 +0800 Subject: [PATCH 3/3] feat: docs --- README.md | 2 +- assets/icon.jpeg | Bin 0 -> 110341 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 assets/icon.jpeg diff --git a/README.md b/README.md index 9681e4c..838d2d9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # React Routers -

fre logo

+

fre logo

React Routers

🌠A React Component for quick configuring route

diff --git a/assets/icon.jpeg b/assets/icon.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..56d77a5eda4a4d7be377795dd19db9db579277e5 GIT binary patch literal 110341 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 literal 0 HcmV?d00001