Skip to content

Commit c9cda60

Browse files
committed
refactor(AppHeader): update breadcrumb
1 parent 1f5cad7 commit c9cda60

File tree

1 file changed

+38
-34
lines changed

1 file changed

+38
-34
lines changed

src/components/AppHeader.vue

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<CContainer fluid>
4242
<CBreadcrumb class="d-md-down-none me-auto mb-0">
4343
<CBreadcrumbItem
44-
v-for="item in currentRoute"
44+
v-for="item in breadcrumbs"
4545
:href="item.to"
4646
:active="item.to === '' ? true : false"
4747
:key="item"
@@ -54,49 +54,53 @@
5454
</template>
5555

5656
<script>
57-
import AppHeaderDropdownAccnt from "./AppHeaderDropdownAccnt";
58-
59-
import router from "../router";
57+
import { onMounted, ref, watch } from 'vue'
58+
import { onBeforeRouteUpdate } from 'vue-router'
59+
import AppHeaderDropdownAccnt from './AppHeaderDropdownAccnt'
60+
import router from '../router'
6061
export default {
61-
name: "AppHeader",
62+
name: 'AppHeader',
6263
components: {
6364
AppHeaderDropdownAccnt,
6465
},
65-
data: function () {
66-
return {
67-
currentRoute: [],
68-
};
69-
},
70-
methods: {
71-
upperCaseFirstChar: function (string) {
72-
return string.substr(0, 1).toUpperCase() + string.substr(1);
73-
},
74-
makeCurrentRoute: function () {
75-
let result = [];
76-
let path = router.currentRoute._value.path;
77-
let temp = path.split("/");
78-
let to = "";
66+
setup() {
67+
const upperCaseFirstChar = (string) =>
68+
string.substr(0, 1).toUpperCase() + string.substr(1)
69+
70+
const makeCurrentRoute = () => {
71+
let result = [
72+
{ to: '/', name: 'Home'}
73+
]
74+
let path = router.currentRoute._value.path
75+
let temp = path.split('/')
76+
let to = ''
7977
if (temp.length <= 2) {
80-
result.push({ to: "", name: router.currentRoute._value.name });
78+
result.push({ to: '', name: router.currentRoute._value.name })
8179
} else {
8280
for (let i = 1; i < temp.length - 1; i++) {
8381
for (let j = 1; j <= i; j++) {
84-
to += `/${temp[j]}`;
82+
to += `/${temp[j]}`
8583
}
86-
result.push({ to: to, name: this.upperCaseFirstChar(temp[i]) });
84+
result.push({ to: to, name: upperCaseFirstChar(temp[i]) })
8785
}
88-
result.push({ to: "", name: router.currentRoute._value.name });
86+
result.push({ to: '', name: router.currentRoute._value.name })
8987
}
90-
return result;
91-
},
92-
},
93-
watch: {
94-
$route(to, from) {
95-
this.currentRoute = this.makeCurrentRoute();
96-
},
97-
},
98-
mounted: function () {
99-
this.currentRoute = this.makeCurrentRoute();
88+
return result
89+
}
90+
91+
const breadcrumbs = ref([])
92+
93+
onBeforeRouteUpdate(() => {
94+
breadcrumbs.value = makeCurrentRoute()
95+
})
96+
97+
onMounted(() => {
98+
breadcrumbs.value = makeCurrentRoute()
99+
})
100+
101+
return {
102+
breadcrumbs,
103+
}
100104
},
101-
};
105+
}
102106
</script>

0 commit comments

Comments
 (0)