概述
本教程操作环境: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的区别是什么的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是大胆大叔为你收集整理的react和webpack的区别是什么的全部内容,希望文章能够帮你解决react和webpack的区别是什么所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复