吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1568|回复: 5
收起左侧

[求助] VUE computed 导致内存溢出,寻找高手帮忙解决

[复制链接]
liven001 发表于 2020-3-2 17:35
本帖最后由 liven001 于 2020-3-2 18:50 编辑

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script src="https://unpkg.com/@vue/composition-api/dist/vue-composition-api.umd.js"></script>
</head>
<body>
<h1>全局 "reactive"对象在组件"computed"函数中用到后,不会跟随组件销毁而释放内存,从而导致内存溢出</h1>
<div id="app"></div>
<script>
    Vue.use(vueCompositionApi.default);

    // 1, 创建一个全局共享reactive对象
    const store = vueCompositionApi.reactive({
        list: new Array(100000).fill('').map((_, index) => {
            return {
                index
            }
        })
    })

    // 2,在"Item"组件中的"computed"函数里面使用到全局共享reactive对象
    const Example = {
        template: `<div>{{ls.length}}</div>`,
        setup() {
            return {
                ls: vueCompositionApi.computed(() => store.list)
            }
        }
    }

    // 3, 在"App"组件上通过"toggle"按钮不停的创建销毁"Item"组件
    // 然后你会发现你的内存不停的增长,新增的内存并不会随"Item"组件的销毁而销毁
    const App = {
        components: {Example},
        template: `
            <div>
                <button @click="show = !show">toggle</button>
                <example v-if="show"></example>
            </div>`,
        setup() {
            return {
                show: vueCompositionApi.ref(false)
            }
        }
    }

    new Vue({
        el: '#app',
        render: h => h(App)
    })
</script>
</body>
</html>

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

linguo2625469 发表于 2020-3-2 17:57
编辑一下格式吧,用代码块把代码包一下
此用户无法显示 发表于 2020-3-2 17:58
 楼主| liven001 发表于 2020-3-2 18:51
linguo2625469 发表于 2020-3-2 17:57
编辑一下格式吧,用代码块把代码包一下

已经编辑了格式,帮忙看看
 楼主| liven001 发表于 2020-3-2 18:52
此用户无法显示 发表于 2020-3-2 17:58
可以用md语法或者直接插入代码哦

已经编辑了格式,帮忙看看
乱码 发表于 2020-3-2 20:16
没有内存溢出,store 就是个全局变量,你先不要考虑响应式,只考虑创建了一个全局变量,你在哪读取,都可以,如果不释放,全局依然存在。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 20:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表