Node.js 与前端开发实战 | 青训营
这是第二天 不需要编译,性能高
Node.js的应用场景-前端工程化
●Bundle: webpack, vite, esbuild, parcel ●Uglifty: uglifyjs ●Transpile: bablejs, typescript ●其他语言加入竞争: esbuild, parcel, prisma ●现状:难以替代
Node.js的应用场景- Web服务端应用
●学习曲线平缓,开发效率较高 ●运行效率接近常见的编译语言 ●社区生态丰富及工具链成熟(npm, V8 inspector) ●与前端结合的场景会有优势(SSR) ●现状:竞争激烈,Node.js 有自己独特的优势
Node.js的应用场景- Electron跨端桌面应用
●商业应用: vscode, slack, discord,zoom ●大型公司内的效率工具 ● 现状:大部分场景在选型时,都值得考虑
Node.js运行时结构- V8, libuv
●V8: JavaScript Runtime,诊断调试工具(inspector) ●libuv: eventloop (事件循环),syscall (系统调用) 举例:用node-fetch发起请求时....
特点
1.异步
2.单线程
3.跨平台
单线程
JS单线程 实际:JS线程+uv线程池+V8任务线程池+V8Inspector线程 优点:不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源;
缺点:阻塞会产生更多负面影响 ●解决办法:多进程或多线程
开发成本低