vite-worker使用

本文详细介绍了在Vite4.0.0版本中如何在前端项目中正确导入和使用WebWorker,包括通过构造器和带查询后缀的导入方式,并提供了MyWorker文件的代码实例以及在主进程中调用和处理子线程消息的方法。
摘要由CSDN通过智能技术生成

vite是现在流行的前端打包工具,有时候需要使用worker,虽然官方有写,但实际可能还有同学不是很会用,所以自己实践了一下记录了一波使用方法;

vite版本
"vite": "^4.0.0",
默认导入worker为报404
// 1.通过构造器导入 .ts也是支持的
const worker = new Worker(new URL('./worker.js', import.meta.url))
// 2.带查询后缀的导入 .ts也是支持的
import MyWorker from './worker.js?worker';
const worker = new MyWorker();
MyWorker文件代码
const ctx: Worker = self as any;
// ctx.addEventListener('message', (res) => {
//     console.log('接收到了消息', res);
// }, false);
ctx.onmessage = (res) => {
    if (res.data.type === 'ready') {
        console.log('收到父线程消息');
        ctx.postMessage('子线程准备完毕');
    }
};
// ctx.addEventListener('error', (err) => {
//     console.log('收集错误', err);
// });
ctx.onerror = (err) => {
    console.log('收集错误', err);
};
export default ctx;
使用MyWorker
import myWorker from './worker.ts?worker';
var homeWorker = new myWorker();
homeWorker.postMessage({type: 'ready'});
homeWorker.onmessage = (res) => {
    console.log('home收到消息', res.data);
};
homeWorker.onerror = (err) => {
    console.log('home收集到错误', err);
    // 关闭
    homeWorker.terminate();
}
使用后控制台打印
// 收到父线程消息
// home收到消息 子线程准备完毕
  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vite-plugin-pwa是一个vite的官方插件,它可以通过简单的配置将你的vite项目转变成一个PWA(Progressive Web App)应用。它使用谷歌开源库workbox来实现service worker的功能,并为缓存做了大量的逻辑代码处理,同时还支持多种不同的缓存策略。此外,vite-plugin-pwa还提供了更新sw.js文件的策略,并且它的配置非常简单。使用vite-plugin-pwa可以使你的应用具备离线访问、消息推送等PWA的特性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vite-plugin-pwa:Vite的零配置PWA](https://download.csdn.net/download/weixin_42115074/15088884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vite-plugin-pwa配置详解](https://blog.csdn.net/YMX2020/article/details/130882745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vite pwa项目使用](https://blog.csdn.net/qq_40055200/article/details/130857483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值