From d0a3726bbb9ef6c5857956c7d92e4021444983b1 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Tue, 25 Aug 2020 15:20:05 +0800 Subject: [PATCH] chore(Sidebar): improve code --- src/sidebar-item/index.js | 7 +++---- src/sidebar/index.js | 14 +++++--------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/sidebar-item/index.js b/src/sidebar-item/index.js index 4e36a9b49..e201b3b03 100644 --- a/src/sidebar-item/index.js +++ b/src/sidebar-item/index.js @@ -1,4 +1,4 @@ -import { ref, computed } from 'vue'; +import { ref } from 'vue'; import { createNamespace } from '../utils'; import { route, routeProps } from '../utils/router'; import { useParent } from '../api/use-relation'; @@ -21,10 +21,9 @@ export default createComponent({ setup(props, { emit }) { const { parent, index } = useParent(SIDEBAR_KEY, ref()); - const selected = computed(() => index.value === +parent.active()); - return (vm) => { const { dot, badge, title, disabled } = props; + const selected = index.value === parent.active(); const onClick = () => { if (disabled) { @@ -33,7 +32,7 @@ export default createComponent({ emit('click', index.value); parent.emit('update:modelValue', index.value); - parent.setIndex(index.value); + parent.setActive(index.value); route(vm.$router, vm); }; diff --git a/src/sidebar/index.js b/src/sidebar/index.js index b72bef65d..61181e177 100644 --- a/src/sidebar/index.js +++ b/src/sidebar/index.js @@ -17,25 +17,21 @@ export default createComponent({ setup(props, { emit, slots }) { const children = ref([]); - const index = ref(+props.modelValue); - const active = () => props.modelValue; + const active = () => +props.modelValue; - const setIndex = (value) => { - if (value !== index.value) { - index.value = value; + const setActive = (value) => { + if (value !== active()) { emit('change', value); } }; - watch(active, (value) => { - setIndex(+value); - }); + watch(active, setActive); provide(SIDEBAR_KEY, { emit, active, children, - setIndex, + setActive, }); return () =>
{slots.default?.()}
;