首页 > web前端 > 前端问答 > react和webpack的区别是什么

react和webpack的区别是什么

青灯夜游
发布: 2022-03-22 15:32:18
原创
2407 人浏览过

区别:1、React是一个JavaScript框架,而webpack是一个JavaScript应用程序的静态模块打包器;2、React主要用于构建用户界面,而webpack可以进行重新加载编译,可将所有的静态资源都合并,进而减少io请求。

react和webpack的区别是什么

本教程操作环境:Windows7系统、react17.0.1版、Dell G3电脑。

react是什么

React是用于构建用户界面的JavaScript框架。

框架:可以被复用的代码。用的人多了,就出名了,越有人越有价值。(笑)

与React齐名的Angular。

React是用于渲染UI的JS库,定位在与实现UI

React Web App解决方案,衍生的React Native是跨屏App解决方案

特点:

  • 声明式设计:声明范式

  • 高效:使用VDOM,减少DOM的交互

  • 灵活:与已知的库或框架完好配合

  • JSX:一种独立的语言,试图解决很多JS的缺陷,ES6包含了几乎所有JSX的特性

  • 组件:代码复用

  • 单向响应数据流:比双向绑定更简单,更快。

为什么使用React?

传统方法频繁操作DOM,性能无法达到要求;React使用VDOM,性能高

传统JS代码维护成本高,React基于组件开发

需要支持移动端开发

React的缺点:

  • 对于一直使用JS,jQuery的传统前端,React非常不友好

  • React强调组件和状态管理,其世界观是面向程序语言的

  • Vue.js强调视图的自动同步,其世界观是面向UI脚本的

  • React的学习成本较Vue.js高。

  • React没有全家桶,只做UI

webpack是什么

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。

webpack 就像一条生产线,要经过一系列处理流程后才能将源文件转换成输出结果。 这条生产线上的每个处理流程的职责都是单一的,多个流程之间有存在依赖关系,只有完成当前处理后才能交给下一个流程去处理。 插件就像是一个插入到生产线中的一个功能,在特定的时机对生产线上的资源做处理。

webpack 通过 Tapable 来组织这条复杂的生产线。 webpack 在运行过程中会广播事件,插件只需要监听它所关心的事件,就能加入到这条生产线中,去改变生产线的运作。 webpack 的事件流机制保证了插件的有序性,使得整个系统扩展性很好。

webpack 构建流程

Webpack 的运行流程是一个串行的过程,从启动到结束会依次执行以下流程 :

  • 初始化参数:从配置文件和 Shell 语句中读取与合并参数,得出最终的参数。

  • 开始编译:用上一步得到的参数初始化 Compiler 对象,加载所有配置的插件,执行对象的 run 方法开始执行编译。

  • 确定入口:根据配置中的 entry 找出所有的入口文件。

  • 编译模块:从入口文件出发,调用所有配置的 Loader 对模块进行翻译,再找出该模块依赖的模块,再递归本步骤直到所有入口依赖的文件都经过了本步骤的处理。

  • 完成模块编译:在经过第 4 步使用 Loader 翻译完所有模块后,得到了每个模块被翻译后的最终内容以及它们之间的依赖关系。

  • 输出资源:根据入口和模块之间的依赖关系,组装成一个个包含多个模块的 Chunk,再把每个 Chunk 转换成一个单独的文件加入到输出列表,这步是可以修改输出内容的最后机会。

  • 输出完成:在确定好输出内容后,根据配置确定输出的路径和文件名,把文件内容写入到文件系统。

在以上过程中,Webpack 会在特定的时间点广播出特定的事件,插件在监听到感兴趣的事件后会执行特定的逻辑,并且插件可以调用 Webpack 提供的 API 改变 Webpack 的运行结果。

react和webpack的区别

React是一个JavaScript框架,是用于渲染UI的JS库,用于构建用户界面。

而webpack是一个打包器(bundler),它能将多个js文件打包成一个文件(其实不止能打包js文件,也能打包其他类型的文件,比如css文件,json文件等)。

webpack的作用

  • 进行重新加载编译。实际就是将浏览器不认识的语法编译成浏览器认识的语法。比如less编译成css,ES6 语法 转成 ES5等等。

  • 减少io请求。通常我们在请求后,会返回一个html到浏览器。这时,我们如果打开控制台,就会发现在html页面通过script,link等标签引用的静态资源, 浏览器会再次发出请求去获取这些资源。但是webpack的打包,将所有的静态资源都合并好了,减少了io请求。

【相关推荐:Redis视频教程

以上是react和webpack的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板