在Vue中使用Web Worker

webpack提供了一个loader叫做worker-loader,用来实现web worker的功能。

  1. 安装:npm i -D worker-loader
  2. 在build/webpack.base.conf.js的rules中添加如下配置:
{
     test: /\.worker\.js$/, //以.worker.js结尾的文件将被worker-loader加载
     use: {
          loader: 'worker-loader' ,
          options: { inline: true, name: 'workerName.[hash].js' }
     }
}
  1. 新建webworker.worker.js文件:
onmessage = function(evt){
   //工作线程接收到主线程的消息
	......
	
  //向主线程发送消息
  postMessage(data);
};

//错误信息
onerror = function (event) {
  console.log(event.message);
}
  1. 在需要的组件中:
import Worker from './webworker.worker.js';

// 创建 worker 实例
var worker = new Worker();

//向工作线程发送消息
worker.postMessage({
      colLength:colLength,
      rowLength:rowLength,    
});

worker.onmessage = function(event) {
	//主线程接收到工作线程的消息
	......
 	
 	//关闭线程
 	worker.terminate();
}

你可能感兴趣的:(Vue,Vue)