关于Vue2中使用Web Worker【热更新】

环境配置

安装

js 复制代码
npm install worker-loader

热更新 config配置

js 复制代码
module.exports = {
   chainWebpack: (config) => {
     config.module
      .rule("worker")
      .test(/\.worker\.js$/)
      .use("worker-loader")
      .loader("worker-loader")
      .options({
        inline: "fallback",
      })
      .end();
    config.module.rule("js").exclude.add(/\.worker\.js$/);
   }
}

开始编写worker文件

我这边在项目的src/worker文件夹中创建应该test.worker.js

test.worker.js的

js 复制代码
// 接受主线程发送的通讯
self.addEventListener("message", (e) => {
  const data = e.data;
  
  self.postMessage("线程向主线程发送信息"); // 向主线程发送通讯

  self.terminate(); // 关闭当前线程
});

主线程项目文件,这里使用App.vue

vue 复制代码
<template>
  <div></div>
</template>

<srcipt>
import TestWorker from '@/worker/test.worker.js'

export default {
  name: "App",
  mounted() {},
  methods: {
    handleStartWorker() {
      const worker = new TestWorker();
      worker.postMessage("向子线程发送通讯");
      worker.addEventListener("message", (e) => {
        console.log(e) // 接受子线程发送的通讯数据
      })
    }
  },
};
</srcipt>
相关推荐
lumi.26 分钟前
Vue.js 从入门到实践1:环境搭建、数据绑定与条件渲染
前端·javascript·vue.js
二十雨辰27 分钟前
vue核心原理实现
前端·javascript·vue.js
影子信息30 分钟前
[Vue warn]: Error in mounted hook: “ReferenceError: Jessibuca is not defined“
前端·javascript·vue.js
卷Java1 小时前
CSS模板语法修复总结
java·前端·css·数据库·微信小程序·uni-app·springboot
gihigo19982 小时前
在CentOS上配置SVN至Web目录的自动同步
前端·svn·centos
珍宝商店2 小时前
优雅的 async/await 错误处理模式指南
开发语言·前端·javascript
excel2 小时前
楖览:Vue3 源码研究导读
前端
proud12122 小时前
开源的 CSS 动画库
前端·css·开源
折翼的恶魔2 小时前
HTML媒体标签
前端·html
excel2 小时前
前端项目中的测试分类与实践 —— 以 Vue 项目为例
前端