web worker在react项目中的使用

摘要:
创建新工作人员。js文件,并编写一个worker子线程脚本。代码如下:constworkercode=()=˃{self.onmessage=function(e){console.log('Messagereceivedfrommainscript');varworkerResult='Receivedfrommain:'+(e.data);console.log('Postingmessage

新建一个worker.js文件,编写worker子线程脚本,代码如下:

const workercode = () => {

  self.onmessage = function(e) {
    console.log('Message received from main script');
    var workerResult = 'Received from main: ' + (e.data);
    console.log('Posting message back to main script');
    self.postMessage(workerResult); // here it's working without self
  }
};
// 把脚本代码转为string
let code = workercode.toString();
code = code.substring(code.indexOf("{")+1, code.lastIndexOf("}"));

const blob = new Blob([code], {type: "application/javascript"});
const worker_script = URL.createObjectURL(blob);

module.exports = worker_script;

 按照上述方式,创建好worker_script,在react项目组件中引用时只需要在对应的组件文件中:

import worker_script from './worker';
var myWorker = new Worker(worker_script);

myWorker.onmessage = (m) => {
       console.log("msg from worker: ", m.data);
};
myWorker.postMessage('im from main');

  

免责声明:文章转载自《web worker在react项目中的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇转adb Shell root 权限R语言数据分析系列六下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

react + antd Table实现表格数据合并

效果如下 其实这种情况也可以使用树形数据表格展示,但是表格合并展示,看起来更直观.反正产品说哪种展示就哪种展示吧 我这里用到两种类型的后台数据,一种是一维数组数据,一种是有层级的二维数组. 表格合并最后要用到的数据都是一维数据,所以需要对数据处理一下.这两种处理方式对data数据从后台接口获取也一样适用 上代码,项目是react+typescr...

你不知道的 Blob

来自公众号:全栈修仙之路 如果你允许用户从你的网站上下载某些文件,那你可能会遇到 Blob 类型。为了实现上述的功能,你可以很容易从网上找到相关的示例,并根据实际需求进行适当的调整。对于部分开发者来说,在完成上述功能之后,他们并不会继续思考 Blob 是什么? 这就导致了一些开发者,还是停留在熟练使用 API 的层面,当遇到比较棘手的问题时,就束手无策...

React 路由

1. 下载插件 yarn add react-router-dom --save / npm i react-router-dom --save 2. 配置基础路由 import { BrowserRouter, Route, Link } from 'react-router-dom' <Provider> <Browser...

RN 上传文件到以及上传文件到七牛云(初步)

本文将介绍: 如何使用原生 Javascript 上传文件 如何使用七牛云 SDK 上传文件到七牛云 在 App 中文件上传是一个非常重要的需求,但是翻遍 React Naitve 的官方文档没有发现有详细介绍文件上传的文章,在 github上 搜索一下倒是发现了不少 repo 在做这样的事情 遗憾的是这项项目都是基于 native code 实现的...

react工程化项目搭建主流技术 umi3.0(或者&amp;lt;3.0版本)+ dva + antd构建项目流程

umi+ dva + antd构建react工程项目(组件化开发搭建项目)1.官方网站安装node.js(并确保 node 版本是 10.13 或以上)2.先确保安装成功npm或者yarn3.npm i yarn tyarn -g (国内源)4.如果你没有 npx,需要先安装它,用于执行 node_modules 下的命令 yarn global add...

React:使用手写签名插件:react-canvas-draw 和 react-signature-canvas

1、安装npm install react-canvas-draw --save2、导入 import CanvasDraw from "react-canvas-draw";3、使用组件 signCanvas= React.createRef(); 设置签名组件的属性 <CanvasDraw ref={this.signCanvas}...