前端为什么要使用模块化?