# v0.11: Update instructions ## New features - New client application, plugin and router - Ant design upgrade to v5 - New plugin - Data visualization - API keys - Google map ## Incompatible changes ### New client application, plugin and router #### Plugin changes before you had to pass a component and the component needed to pass `props.children`, for example: ```tsx | pure const HelloProvider = (props) => { // do something logic return
{props.children}
; } export default HelloProvider ``` now you need to change to the plugin way, for example: ```diff | pure +import { Plugin } from '@nocobase/client' const HelloProvider = (props) => { // do something logic return
{props.children}
; } + export class HelloPlugin extends Plugin { + async load() { + this.app.addProvider(HelloProvider); + } + } - export default HelloProvider; + export default HelloPlugin; ``` plugins are very powerful and can do a lot of things in the `load` phase: - modify routes - add Components - add Providers - add Scopes - load other plugins #### Routing changes if you used `RouteSwitchContext` to modify the route before, you now need to replace it with a plugin: ```tsx | pure import { RouteSwitchContext } from '@nocobase/client'; const HelloProvider = () => { const { routes, ...others } = useContext(RouteSwitchContext); routes[1].routes.unshift({ path: '/hello', component: Hello, }); return
{props.children}
} ``` now you need to change to the plugin way, for example: ```diff | pure - import { RouteSwitchContext } from '@nocobase/client'; + import { Plugin } from '@nocobase/client'; const HelloProvider = (props) => { - const { routes, ...others } = useContext(RouteSwitchContext); - routes[1].routes.unshift({ - path: '/hello', - component: Hello, - }); return
- {props.children} -
} + export class HelloPlugin extends Plugin { + async load() { + this.app.router.add('admin.hello', { + path: '/hello', + Component: Hello, + }); + this.app.addProvider(HelloProvider); + } + } + export default HelloPlugin; ``` more details can be found in [packages/core/client/src/application/index.md](https://github.com/nocobase/nocobase/blob/main/packages/core/client/src/application/index.md) ### antd upgrade to v5 - antd related details view the official website [V4 to V5](https://ant.design/docs/react/migration-v5) - `@formily/antd` replace with `@formily/antd-v5`