vue3中项目优化方法详解(Web Worker的使用)

 更新时间:2024年07月22日 10:07:37   作者:℘团子এ  
最近在做vue3的项目中,遇到了计算量庞大导致页面响应缓慢的问题,所以下面这篇文章主要给大家介绍了关于vue3中项目优化方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1.Web Worker的作用

本人的理解:js是单线程执行代码,也就是代码需要从上往下执行,而使用Web Worker后相当于分了一条线程出来执行代码,那么两条线程肯定是比一条线程执行的快。

2.新建Web Worker文件

在public文件夹下新建worker.js

说明:名称可以随意,worker.js相当于分装了一个方法,只适用于某个功能或者数据处理,所以可以新建多个worker.js相当于分装了多个用于不同场景的方法。

// worker.js

self.onmessage = function(event) {
  const result = processData(event.data);  // 执行数据处理操作
  console.log("result",result,event);
  postMessage(result); // 将处理后的数据发送回主线程
};

// 执行数据处理操作
function processData(data) {
  // 在这里进行数据处理操作
  let sum = 0;
    for (let i = 0; i < 200000; i++) {
        for (let i = 0; i < 10000; i++) {
            sum += Math.random()
        }
    }
  return '处理结果: ' + data +'/'+ sum;
}

3.引入使用

<template>
    <div>
        <button @click="processData">处理数据</button>
        <div>{{ result }}</div>
    </div>
</template>

<script setup>
import { ref } from "vue";

const result = ref('')
function processData() {
    const worker = new Worker('/public/worker.js'); // 创建 Web Worker 参数为worker.js文件路径
    worker.onmessage = (event) => { // 监听Web Worker消息处理
        result.value = event.data; // 处理返回的结果
    };
    worker.postMessage('哇酷哇酷'); // 发送消息给 Web Worker 参数为需要传递的数据
}
</script>

4.效果

5.说明

(1).如果不使用Web Worker而直接在processData方法中使用以下代码,那么要么卡死要么需要很久才能打印,而使用后就能相对较快打印出来

let sum = 0;
    for (let i = 0; i < 200000; i++) {
        for (let i = 0; i < 10000; i++) {
            sum += Math.random()
        }
    }
console.log("sum",sum);

(2).Web Worker不需要安装插件,如果使用worker-loader这个插件就需要安装,该插件好像只能在webpack项目才能使用

总结

到此这篇关于vue3中项目优化方法的文章就介绍到这了,更多相关vue3项目优化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中解决异步交互数据出现延迟问题

    vue中解决异步交互数据出现延迟问题

    这篇文章主要介绍了vue中解决异步交互数据出现延迟问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • VUE+Element UI实现简单的表格行内编辑效果的示例的代码

    VUE+Element UI实现简单的表格行内编辑效果的示例的代码

    这篇文章主要介绍了VUE+Element UI实现简单的表格行内编辑效果的示例的代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Vue3组件通信的具体用法实例

    Vue3组件通信的具体用法实例

    在Vue.js3中,组件通信主要包括父子组件通信、兄弟组件通信以及祖孙组件通信,这篇文章主要介绍了Vue3组件通信具体用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-09-09
  • 详解vue-video-player使用心得(兼容m3u8)

    详解vue-video-player使用心得(兼容m3u8)

    这篇文章主要介绍了详解vue-video-player使用心得(兼容m3u8),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • vite build vue3项目配置开启sourcemap方式

    vite build vue3项目配置开启sourcemap方式

    这篇文章主要介绍了vite build vue3项目配置开启sourcemap方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • vue Draggable实现拖动改变顺序

    vue Draggable实现拖动改变顺序

    这篇文章主要为大家详细介绍了vue Draggable实现拖动改变顺序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Vue使用自定义指令实现拖拽行为实例分析

    Vue使用自定义指令实现拖拽行为实例分析

    这篇文章主要介绍了Vue使用自定义指令实现拖拽行为,结合实例形式分析了Vue使用自定义指令实现拖拽行为具体步骤、原理与操作注意事项,需要的朋友可以参考下
    2020-06-06
  • Vue3.0插件执行原理与实战

    Vue3.0插件执行原理与实战

    这篇文章主要介绍了Vue3.0插件执行原理与实战,Vue项目能够使用很多插件来丰富自己的功能Vue-Router、Vuex等,节省了我们大量的人力和物力,下面我们就一起来了解Vue3.0插件的原理吧,需要的小伙伴可以参考一下
    2022-02-02
  • vuex-persist 使用场景分析

    vuex-persist 使用场景分析

    Vuex-Persist 是一个用于在 Vuex 中实现持久化状态的库,它可以用来解决应用程序在刷新浏览器或关闭页面后丢失 Vuex store 中状态的问题,本文给大家介绍vuex-persist 可以用来干什么,感兴趣的朋友一起看看吧
    2023-11-11
  • vue中的rules表单校验规则使用方法示例详解 :rules=“rules“

    vue中的rules表单校验规则使用方法示例详解 :rules=“rules“

    这篇文章主要介绍了vue中的rules表单校验规则使用方法示例详解 :rules=“rules“,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11

最新评论