Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
React Navigation | 22,743 | 5,261 | 985 | 19 hours ago | 204 | June 22, 2023 | 682 | TypeScript | ||
Routing and navigation for your React Native apps | ||||||||||
Ice | 17,653 | 1,275 | 19 hours ago | 90 | August 26, 2022 | 301 | mit | TypeScript | ||
🚀 ice.js: The Progressive App Framework Based On React(基于 React 的渐进式应用框架) | ||||||||||
Umi | 14,436 | 1,690 | 14 hours ago | 443 | July 27, 2023 | 199 | mit | TypeScript | ||
A framework in react community ✨ | ||||||||||
Awesome Nextjs | 9,033 | 2 months ago | 61 | |||||||
:notebook_with_decorative_cover: :books: A curated list of awesome resources : books, videos, articles about using Next.js (A minimalistic framework for universal server-rendered React applications) | ||||||||||
Wouter | 5,508 | 7 | 61 | 2 days ago | 49 | May 17, 2023 | 22 | JavaScript | ||
🥢 A minimalist-friendly ~1.5KB routing for React and Preact. Nothing else but HOOKS. | ||||||||||
Inertia | 5,316 | 17 | 60 | 14 days ago | 50 | September 30, 2022 | 41 | mit | PHP | |
Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers. | ||||||||||
Router | 5,130 | 13 | 6 days ago | 15 | March 21, 2022 | 17 | mit | TypeScript | ||
🤖 Fully typesafe Router for React (and friends) w/ built-in caching, 1st class search-param APIs, client-side cache integration and isomorphic rendering. | ||||||||||
After.js | 4,113 | 44 | 7 | 2 months ago | 34 | November 01, 2021 | 19 | mit | TypeScript | |
Next.js-like framework for server-rendered React apps built with React Router | ||||||||||
Next Routes | 2,439 | 686 | 81 | 8 months ago | 46 | May 21, 2018 | mit | JavaScript | ||
Universal dynamic routes for Next.js | ||||||||||
React Most Wanted | 2,415 | 7 | a month ago | 98 | October 18, 2022 | 18 | mit | JavaScript | ||
React starter kit with "Most Wanted" application features |
This boilerplate aims at solving the MVP (Minimal Viable Product) of a universal app while trying to keep the base unopinionated elsewhere and simple to read and extend.
Since there are so many opinions on how to use css (vanilla, sass, less, react css modules etc) I've left it up to you.
##Install & run
npm i && npm start
Go to http://localhost:3000/
.
npm run build
This will create a dist/
folder with a app.min.js
which will be used on any environment which isn't undefined (i.e. not local).
npm run start-prod
This will build and then run your app with environment set to production, so that app.min.js
and config/production.js
are used.
Add your routes in Routes.js
.
<Route path="users" component={Users} />
The parent App.js
defines the base title and meta in a Helmet
component. Any sub-component can override/add properties (even adding scripts and css). See the react-helmet docs for more info.
You can store app settings under app/config/
. A file matching process.env.NODE_ENV
will be loaded, for example app/config/production.js
. If process.env.NODE_ENV
is undefined it will fallback to app/config/default.js
. You can access the correct config with:
import config from './config';
Read the Redux guide if you are new to redux. Write Redux actions and stores as normal, and if the action creator is asynchronous then it should return a Promise (or a Promise.all) in the inner function.
You should write dispatches for actions that must be called for the container to be ready:
static readyOnActions(dispatch, params) {
return Promise.all([
dispatch(UserActions.fetchUserIfNeeded(params.id))
]);
}
You should also invoke the actions in componentDidMount
. This ensures that if the component is reached on the client, then the same actions will be invoked. It's up to the action to figure out if fetches for data need to be made or not:
componentDidMount() {
User.readyOnActions(this.props.dispatch, this.props.params);
}