45 lines
		
	
	
		
			884 B
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			884 B
		
	
	
	
		
			JavaScript
		
	
	
	
| import components from './components.json'
 | |
| import * as demo from './demo-index'
 | |
| 
 | |
| const traverseComponents = (data, fn) => {
 | |
|   data.map(item =>
 | |
|     item.list && item.list.map(subItem =>
 | |
|       fn(subItem)
 | |
|     )
 | |
|   )
 | |
| }
 | |
| 
 | |
| const registerRoute = (components) => {
 | |
|   const routes = []
 | |
|   traverseComponents(components, (component) => {
 | |
|     routes.push({
 | |
|       name: component.name,
 | |
|       path: component.path,
 | |
|       // require(`../components${component.path}/demo`).default
 | |
|       component: demo[component.name] || {},
 | |
|       meta: {
 | |
|         title: component.name || '',
 | |
|         description: component.text || ''
 | |
|       }
 | |
|     })
 | |
|   })
 | |
|   return routes
 | |
| }
 | |
| 
 | |
| const routes = registerRoute(components)
 | |
| 
 | |
| routes.push({
 | |
|   path: '/home',
 | |
|   component: demo['Home']
 | |
| })
 | |
| routes.push({
 | |
|   path: '/category',
 | |
|   component: demo['Category']
 | |
| })
 | |
| routes.push({
 | |
|   path: '/',
 | |
|   redirect: '/home'
 | |
| })
 | |
| 
 | |
| export default routes
 |