安装worker-loader
npm install worker- loader
编写worker.js
onmessage = function ( e ) {
let sum = e. data;
for ( let i = 0 ; i < 200000 ; i++ ) {
for ( let i = 0 ; i < 10000 ; i++ ) {
sum += Math. random ( )
}
}
postMessage ( sum) ;
}
通过行内loader 引入 worker.js
import Worker from "worker-loader!./worker"
结果
完整代码
< template>
< div id = " app" >
< img alt = " Vue logo" src = " ./assets/logo.png" />
< HelloWorld msg = " Welcome to Your Vue.js App" />
< div>
< button @click = " makeWorker" > 开始线程</ button>
< p> < input type = " text" /> </ p>
</ div>
</ div>
</ template>
< script>
import HelloWorld from "./components/HelloWorld.vue" ;
import Worker from "worker-loader!./worker" ;
export default {
name : "App" ,
components : {
HelloWorld,
} ,
methods : {
makeWorker ( ) {
let start = performance. now ( ) ;
let worker = new Worker ( ) ;
worker. postMessage ( 0 ) ;
worker. addEventListener ( "message" , ( e ) => {
worker. terminate ( ) ;
let end = performance. now ( ) ;
let durationTime = end - start;
console. log ( "计算结果:" , e. data) ;
console. log ( ` 代码执行了 ${ durationTime} 毫秒 ` ) ;
} ) ;
} ,
} ,
} ;
</ script>
< style>
#app {
font-family : Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing : antialiased;
-moz-osx-font-smoothing : grayscale;
text-align : center;
color : #2c3e50;
margin-top : 60px;
}
</ style>