The width of the case box is 100% by default. You need to manually switch the viewport width
Whether the size and location of the listening component have changed, Only support vue3
pnpm add resize-observer-vue
import
import { createApp } from 'vue'
import ResizeObserver from 'resize-observer-vue'
import App from './example/App.vue'
const app = createApp(App)
app.use(ResizeObserver).mount('#app')Or introduced as a component
import { ResizeObserver } from 'resize-observer-vue'use
<ResizeObserver :on-resize="callback" :disabled="false">
<TargetComponent/>
<ResizeObserver/>registration Directive
import { directive } from 'resize-observer-vue'
const app = createApp({})
app.directive('resize', directive)use
<TargetComponent v-resize:[disabled]="callback" />Originally, the use of hooks can also be as simple as the following
const targetRef = ref()
useResize(targetRef, () => {
// ...
})<TargetComponent ref="targetRef" />But unfortunately, in the setup syntax of vue3, it is no longer possible to simply obtain instances of subcomponents through ref. Must be exported manually. but i see no value in doing this
| Property | Type | Default | Description |
|---|---|---|---|
| disabled | boolean | false | Whether to disable observation |
| onResize | ({ width, height }) => void | - | Trigger when child node resized |
