|
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