|
1 | 1 | import classNames from '../_util/classNames'; |
2 | 2 | import type { PropType, ExtractPropTypes, CSSProperties } from 'vue'; |
3 | | -import { |
4 | | - watchEffect, |
5 | | - inject, |
6 | | - defineComponent, |
7 | | - ref, |
8 | | - watch, |
9 | | - onMounted, |
10 | | - onBeforeUnmount, |
11 | | - provide, |
12 | | -} from 'vue'; |
| 3 | +import { inject, defineComponent, ref, watch, onMounted, onBeforeUnmount, provide } from 'vue'; |
13 | 4 | import PropTypes from '../_util/vue-types'; |
14 | 5 | import { tuple } from '../_util/type'; |
15 | 6 | import initDefaultProps from '../_util/props-util/initDefaultProps'; |
@@ -123,25 +114,31 @@ export default defineComponent({ |
123 | 114 | siderHook && siderHook.addSider(uniqueId); |
124 | 115 |
|
125 | 116 | onMounted(() => { |
126 | | - watchEffect(() => { |
127 | | - try { |
128 | | - mql?.removeEventListener('change', responsiveHandler); |
129 | | - } catch (error) { |
130 | | - mql?.removeListener(responsiveHandler); |
131 | | - } |
132 | | - if (typeof window !== 'undefined') { |
133 | | - const { matchMedia } = window; |
134 | | - if (matchMedia! && props.breakpoint && props.breakpoint in dimensionMaxMap) { |
135 | | - mql = matchMedia(`(max-width: ${dimensionMaxMap[props.breakpoint]})`); |
136 | | - try { |
137 | | - mql.addEventListener('change', responsiveHandler); |
138 | | - } catch (error) { |
139 | | - mql.addListener(responsiveHandler); |
| 117 | + watch( |
| 118 | + () => props.breakpoint, |
| 119 | + () => { |
| 120 | + try { |
| 121 | + mql?.removeEventListener('change', responsiveHandler); |
| 122 | + } catch (error) { |
| 123 | + mql?.removeListener(responsiveHandler); |
| 124 | + } |
| 125 | + if (typeof window !== 'undefined') { |
| 126 | + const { matchMedia } = window; |
| 127 | + if (matchMedia! && props.breakpoint && props.breakpoint in dimensionMaxMap) { |
| 128 | + mql = matchMedia(`(max-width: ${dimensionMaxMap[props.breakpoint]})`); |
| 129 | + try { |
| 130 | + mql.addEventListener('change', responsiveHandler); |
| 131 | + } catch (error) { |
| 132 | + mql.addListener(responsiveHandler); |
| 133 | + } |
| 134 | + responsiveHandler(mql); |
140 | 135 | } |
141 | | - responsiveHandler(mql); |
142 | 136 | } |
143 | | - } |
144 | | - }); |
| 137 | + }, |
| 138 | + { |
| 139 | + immediate: true, |
| 140 | + }, |
| 141 | + ); |
145 | 142 | }); |
146 | 143 | onBeforeUnmount(() => { |
147 | 144 | try { |
|
0 commit comments