>  기사  >  웹 프론트엔드  >  iview-ui를 기반으로 한 탐색 모음 경로 구성(코드 예)

iview-ui를 기반으로 한 탐색 모음 경로 구성(코드 예)

不言
不言앞으로
2019-02-20 13:36:232469검색

이 글의 내용은 iview-ui를 기반으로 한 내비게이션 바 경로 구성(코드 예제)에 대한 내용입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

이전 회사의 백엔드 관리 시스템은 플래싱 테이블로 만들어졌습니다. 저는 오랫동안 백엔드 관리 시스템을 작성하지 않았습니다. 이직 후 마침내 라우터를 가지고 놀기 시작했습니다. 오랫동안 사용하지 않으면 잊어버릴 뻔했기 때문에 몇 가지 공통 모듈을 기록하고 필요한 친구들과 공유했습니다.

이후

//router.js
let routes = [
    {
        path: '/',
        redirect: '/admin',
    },
    {
        path: '/login',
        name: 'login',
        meta: {title: '登录'},
        component: () => import('./components/login.vue')
    },
    {
        path: '/admin',
        name: 'admin',
        meta: {title: '主页'},
        component: () => import('./components/admin.vue'),
        children: [
            {
                path: 'operation',
                name: 'operation',
                meta: {title: '运营管理'},
                component: () => import('./components/admin/operation.vue')
            },
            {
                path: 'order',
                name: 'order',
                meta: {title: '订单中心'},
                redirect: 'order/index',
                component: () => import('./components/admin/order.vue'),
                children: [
                    {
                        path: 'index',
                        name: 'index',
                        meta: {title: ''},
                        component: () => import('./components/admin/ordercenter.vue')
                    },
                    {
                        path: 'detail',
                        name: 'detail',
                        meta: {title: '订单详情'},
                        component: () => import('./components/admin/orderdetail.vue')
                    },
                ]
            },
        ]
    },
]

export default routes

이것은 내 라우터 경로 구성 테이블의 일부입니다

 /*面包屑路径处理*/
    eve_breadcrumbItem_change(){
        var list = this.$route.fullPath.split('/')//list[0]:是空格
        this.BreadcrumbItem = []
        function fn(obj, arr, index,self) {
            if (obj.hasOwnProperty('children')&&obj['children'].length>0) {
                for (let one of obj.children) {
                    if (one.name != 'index' && one.name == arr[index]) {
                        self.BreadcrumbItem.push({'title': one.meta.title, 'path': one.path})
                        return one.hasOwnProperty('children')&&one['children'].length>0?fn(one,arr,index+1,self):false
                    }
                }
            }
        }
        for(let one of this.$router.options.routes){
            if(one.hasOwnProperty('name')&&one.name == list[1]){
                this.BreadcrumbItem.push({'title': one.meta.title, 'path': one.path})
                fn(one,list,2,this)
            }
        }
    }

사실 이것은 경로 이름을 재귀적으로 재조립하고 데이터를 이동 경로

watch: {
    '$route'(to, from) {
        this.eve_breadcrumbItem_change()
    }
},
...
mounted() {
    this.eve_breadcrumbItem_change()
},

에 전달하는 것입니다. 또한 단순하게 사용됩니다. 페이지를 새로 고칠 때 경로가 누락되는 것을 방지하기 위해 경로 변경을 감지하고 마운트된 상태에서 다시 호출하기만 하면 됩니다.

결과

결과는 문제가 자연스럽게 해결된다는 것입니다. 그러나 경로 구성은 다른 사람과 다를 수 있습니다. 저는 그룹화에 기본적으로 인덱스 경로를 두는 것을 선호합니다. 여기에서 주의하시기 바랍니다.

위 내용은 iview-ui를 기반으로 한 탐색 모음 경로 구성(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제