美文网首页
vue中实现在页面缩小或扩大时重新渲染所有组件

vue中实现在页面缩小或扩大时重新渲染所有组件

作者: 郭_小青 | 来源:发表于2025-03-09 14:18 被阅读0次

1、监听 resize 事件:
使用 Vue 3 的组合式 API来监听 resize 事件。

2、使用 key 强制重新渲染组件:
通过改变组件的 key 值来强制重新渲染。

<template>
  <div :key="resizeKey">
    <!-- 你的组件内容 -->
    <p>窗口大小改变时重新渲染</p>
  </div>
</template>

<script>
import { ref, onMounted, onUnmounted } from 'vue';

export default {
  setup() {
    const resizeKey = ref(0);

    const handleResize = () => {
      // 改变 key 值以触发重新渲染
      resizeKey.value += 1;
    };

    onMounted(() => {
      window.addEventListener('resize', handleResize);
    });

    onUnmounted(() => {
      window.removeEventListener('resize', handleResize);
    });

    return {
      resizeKey
    };
  }
};
</script>

解释
1、ref:使用 ref 创建一个响应式变量 resizeKey,用于强制重新渲染。
2、handleResize:在 resize 事件触发时,更新 resizeKey 的值。
3、onMounted 和 onUnmounted:在组件挂载时添加事件监听器,在组件卸载时移除事件监听器,以避免内存泄漏。
4、:key 属性:通过改变 key 值,Vue 会认为这是一个新的组件实例,从而重新渲染。

相关文章

  • (二十三)UI组件与容器组件的拆分

    UI组件-页面渲染容器组件-页面逻辑 拆分这样的todolist 把页面渲染从 src\TodoList.js 中...

  • React性能优化

    在以下场景中,父组件和子组件通常会重新渲染:在同一组件或父组件中调用 setState 时。从父级收到的“prop...

  • react Hooks —— memo用法

    改变Parent组件中的num,会重新渲染Child组;改变Parent组件中的count,不会重新渲染Child组件

  • vue周期函数

    1.vue中的组件 -vue中所有页面由组件组成-vue可以将公共的部分封装成组件在其他地方使用-App.vue是...

  • Vue 响应式原理解析

    vue框架 中最核心的就是 vue的响应式 ,通过对vue中data数据的变更实现页面效果的重新渲染。但在实际开发...

  • vue-router、created()(小知识点一)

    vue-router第一次访问组件时会渲染组件,当再次操作该组件时,不会重新进行生成,而是会复用组件,而creat...

  • vue改变数组内容页面不刷新问题

    由于JavaScript的限制,在使用索引改变数组时,Vue不会重新渲染页面。 原因:a[3] = newValu...

  • 40.vue钩子函数

    1.updated 当vue发现data中的数据发生了改变,会触发对应组件的重新渲染

  • [2019-07-09]写 React / Vue 项目时为什么

    写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么? ME: 在页面重新刷新的时候,让...

  • React的性能优化技巧

    哪些场景下,父组件和子组件会重新渲染? 1.在同一组件或父组件中调用 setState 时。 2.从父级收到的“p...

网友评论

      本文标题:vue中实现在页面缩小或扩大时重新渲染所有组件

      本文链接:https://www.haomeiwen.com/subject/ujhemjtx.html