安装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>