This repository was archived by the owner on Aug 5, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 43
2.0 Release plan #1076
Copy link
Copy link
Open
Description
- Upgrade
react-routerto version 4 Upgrade React Router from version 3 to 4 #1072- rename
gsBeforeRoutestoonEnter - use routes config instead of components
- ❓ call
onEnterand await the results on server, but on client navigate and call other hooks - ❓ leverage HOC for data loading and other routes related tasks, sth like:
function getRoutes(store, httpClient) { return [ { component: MasterLayout, routes: [ { path: '/', exact: true, component: withDataLoader({ async onEnter(match, request) { /* ... */ }, shouldReloadData() { return true; }, Loading: Spinner onError(error) { /* handle error */ } /* ... */ })(HomeApp) }, ], }, ]; }
- integrate scrolling behaviour
- extend
withDataLoaderoptions - update templates
- final touches
- rename
- Unify configuration
- Replace
src/entries.jsonwithsrc/apps.jsand use an array instead of object (Improve client and server entires with unified configuration #1078):
module.exports = [ { name: 'main', path: '/', Document: './apps/main/Index.js', reducers: .'/apps/main/reducers', routes: './apps/main/routes', config: { /* .... */ }, }, { name: 'test', path: '/test', Document: './apps/test/Index.js', reducers: './apps/test/reducers', routes: './apps/test/routes', }, ];
- fully app specific configuration (eg to configure redux, httpClient and so on)
- single file for gluestick config, webpack configs, caching, plugins, hooks
- Replace
- Revamp plugin system and concat it with hooks
- hooks will be a plugins
- plugins will need to implement hook method if they want to plug itself in:
class MyPlugin { constructor(/* initial data + helpers/utils */) { /* ... one-time setup */} exampleHook(/* args */) {}, async exampleHook2(/* args */) {} } // or function MyPlugin(/* initial data + helpers/utils */) { /* ... one-time setup */ return { exampleHook(/* args */) {}, async exampleHook2(/* args */) {} } }
- support for both async and sync plugin hooks
- more hooks
- each plugin can execute other plugins
- modularize commands - each command will have it's own lifecycle:
This will allows us to support more advanced scenarious where we need to alter the command
module.exports = { setup(commander) { // define itself }, run() { // do sth } // ... };
behaviour + commands plugins - guides and full documentation
- presets Project presets #992
- updates to default project template
- ...
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels