@@ -4,11 +4,7 @@ Ant Design Pro Layout
4
4
5
5
<div align =" center " >
6
6
7
- [ ![ NPM version] ( https://img.shields.io/npm/v/@ant-design-vue/pro-layout/next?style=flat )] ( https://npmjs.org/package/@ant-design-vue/pro-layout )
8
- [ ![ Vue Support] ( https://img.shields.io/badge/support-Vue3-green?style=flat )] ( ./package.json )
9
- [ ![ Vue Grammar Level] ( https://img.shields.io/badge/full-Composition%20API-blue?style=flat )] ( https://v3.vuejs.org/guide/composition-api-introduction.html )
10
- [ ![ NPM downloads] ( http://img.shields.io/npm/dm/@ant-design-vue/pro-layout.svg?style=flat )] ( https://npmjs.org/package/@ant-design-vue/pro-layout )
11
- [ ![ License] ( https://img.shields.io/github/license/vueComponent/pro-layout )] ( ./LICENSE )
7
+ [ ![ NPM version] ( https://img.shields.io/npm/v/@ant-design-vue/pro-layout/next?style=flat )] ( https://npmjs.org/package/@ant-design-vue/pro-layout ) [ ![ Vue Support] ( https://img.shields.io/badge/support-Vue3-green?style=flat )] ( ./package.json ) [ ![ Vue Grammar Level] ( https://img.shields.io/badge/full-Composition%20API-blue?style=flat )] ( https://v3.vuejs.org/guide/composition-api-introduction.html ) [ ![ NPM downloads] ( http://img.shields.io/npm/dm/@ant-design-vue/pro-layout.svg?style=flat )] ( https://npmjs.org/package/@ant-design-vue/pro-layout ) [ ![ License] ( https://img.shields.io/github/license/vueComponent/pro-layout )] ( ./LICENSE )
12
8
13
9
</div >
14
10
@@ -26,32 +22,25 @@ npm i @ant-design-vue/pro-layout@next -S
26
22
First, you should add the icons that you need into the library.
27
23
28
24
``` js
29
- import { createApp } from ' vue'
25
+ import { createApp } from ' vue' ;
30
26
import ProLayout , { PageContainer } from ' @ant-design-vue/pro-layout' ;
31
27
32
28
const app = createApp ();
33
29
34
- app .use (ProLayout)
35
- .use (PageContainer)
36
- .mount (' #app' )
30
+ app .use (ProLayout).use (PageContainer).mount (' #app' );
37
31
```
38
32
39
33
After that, you can use pro-layout in your Vue components as simply as this:
40
34
41
35
``` vue
42
36
<template>
43
- <route-context-provider :value="state">
44
- <pro-layout>
45
- <router-view />
46
- </pro-layout>
47
- </route-context-provider>
37
+ <pro-layout v-bind="state">
38
+ <router-view />
39
+ </pro-layout>
48
40
</template>
49
41
50
42
<script>
51
43
import { defineComponent, reactive } from 'vue';
52
- import { createRouteContext } from '@ant-design-vue/pro-layout';
53
-
54
- const [ RouteContextProvider ] = createRouteContext();
55
44
56
45
export default defineComponent({
57
46
setup() {
@@ -69,56 +58,51 @@ export default defineComponent({
69
58
hasSideMenu: true,
70
59
hasHeader: true,
71
60
hasFooterToolbar: false,
72
- setHasFooterToolbar: ( has) => (state.hasFooterToolbar = has),
61
+ setHasFooterToolbar: has => (state.hasFooterToolbar = has),
73
62
});
74
-
63
+
75
64
return {
76
65
state,
77
- }
66
+ };
78
67
},
79
- components: {
80
- RouteContextProvider,
81
- }
82
68
});
83
69
</script>
84
70
```
71
+
85
72
or ` TSX `
73
+
86
74
``` tsx
87
75
import { defineComponent , reactive } from ' vue' ;
88
- import ProLayout , { createRouteContext , RouteContextProps } from ' @ant-design-vue/pro-layout' ;
76
+ import { RouterView } from ' vue-router' ;
77
+ import ProLayout from ' @ant-design-vue/pro-layout' ;
89
78
90
79
export default defineComponent ({
91
- setup () {
92
- const [ RouteContextProvider ] = createRouteContext ();
93
-
94
- const state = reactive <RouteContextProps >({
95
- collapsed: false ,
96
-
97
- openKeys: [' /dashboard' ],
98
- selectedKeys: [' /welcome' ],
99
-
100
- isMobile: false ,
101
- fixSiderbar: false ,
102
- fixedHeader: false ,
103
- menuData: [],
104
- sideWidth: 208 ,
105
- hasSideMenu: true ,
106
- hasHeader: true ,
107
- hasFooterToolbar: false ,
108
- setHasFooterToolbar : (has : boolean ) => (state .hasFooterToolbar = has ),
109
- });
110
-
111
- return () => (
112
- <RouteContextProvider value = { state } >
113
- <ProLayout >
114
- <RouterView />
115
- </ProLayout >
116
- </RouteContextProvider >
117
- )
118
- }
119
- })
120
- ```
80
+ setup() {
81
+ const state = reactive ({
82
+ collapsed: false ,
83
+
84
+ openKeys: [' /dashboard' ],
85
+ selectedKeys: [' /welcome' ],
86
+
87
+ isMobile: false ,
88
+ fixSiderbar: false ,
89
+ fixedHeader: false ,
90
+ menuData: [],
91
+ sideWidth: 208 ,
92
+ hasSideMenu: true ,
93
+ hasHeader: true ,
94
+ hasFooterToolbar: false ,
95
+ setHasFooterToolbar : (has : boolean ) => (state .hasFooterToolbar = has ),
96
+ });
121
97
98
+ return () => (
99
+ <ProLayout { ... state } locale = { (i18n : string ) => i18n } >
100
+ <RouterView />
101
+ </ProLayout >
102
+ );
103
+ },
104
+ });
105
+ ```
122
106
123
107
## Build project
124
108
0 commit comments