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项目优化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3集成Element-Plus之全局导入和按需导入

    vue3集成Element-Plus之全局导入和按需导入

    这篇文章主要给大家介绍了关于vue3集成Element-Plus之全局导入和按需导入的相关资料,element-plus正是element-ui针对于vue3开发的一个UI组件库, 它的使用方式和很多其他的组件库是一样的,需要的朋友可以参考下
    2023-07-07
  • Vue中比较流行且好用的组件使用示例

    Vue中比较流行且好用的组件使用示例

    这篇文章主要介绍了Vue中比较流行且好用的一些组件使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • vue项目接入高德地图点击地图获取经纬度以及省市区功能

    vue项目接入高德地图点击地图获取经纬度以及省市区功能

    这篇文章主要给大家介绍了关于vue项目接入高德地图点击地图获取经纬度以及省市区功能的相关资料,开发中我们需要地图定位,就是用户输入位置,自动定位获取经纬度,需要的朋友可以参考下
    2023-08-08
  • 加速vue组件渲染之性能优化

    加速vue组件渲染之性能优化

    这篇文章主要介绍了加速vue组件渲染之性能优化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Vue表单快速上手

    Vue表单快速上手

    工作中vue表单使用的最多的莫过于input、textarea、select等,原生js的基础上vue通过双向数据绑定等,实现了自己独有的一套指令,这是react中没有的部分,也算是vue的一大特色
    2022-09-09
  • vuex如何修改状态state的方法

    vuex如何修改状态state的方法

    这篇文章主要介绍了vuex如何修改状态state的方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Vue.config.productionTip = false 不起作用的问题及解决

    Vue.config.productionTip = false 不起作用的问题及解决

    这篇文章主要介绍了Vue.config.productionTip = false为什么不起作用,本文给大家分析问题原因解析及解决方案,需要的朋友可以参考下
    2022-11-11
  • vue中点击切换按钮功能之点启用后按钮变为禁用

    vue中点击切换按钮功能之点启用后按钮变为禁用

    这篇文章主要介绍了vue中点击切换按钮功能之点启用后按钮变为禁用功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-09-09
  • Vue2和Vue3中如何使用WebSocker封装详解

    Vue2和Vue3中如何使用WebSocker封装详解

    如果项目中多个组件都使用到WebSocket请求,那么我们需要对WebSocket进行封装,方便我们使用,下面这篇文章主要给大家介绍了关于Vue2和Vue3中如何使用WebSocker封装的相关资料,需要的朋友可以参考下
    2024-07-07
  • vue-cli3 项目从搭建优化到docker部署的方法

    vue-cli3 项目从搭建优化到docker部署的方法

    这篇文章主要介绍了vue-cli3 项目从搭建优化到docker部署的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01

最新评论