做网站用html好还是vue好,中大型项目用react还是vue?

d80b21803a147a5c02d2084af57051f7.png

中大型项目用react还是vue?

中大型项目可以用react,react比较适合大型项目。

原因:

1、大型项目的庞大带来的是代码优化以及性能优化react提倡的更细粒度的封装,带来的组件的复用性提高。

更高自由度的编写(几乎无api)可以为手动优化性能带来更大的便利性

2、react社区的活跃性这点会反复提及,因为这点更加重要

社区提供了多样性的解决方案和更多的选择,这对于一个大型项目(大量的坑)来说也是至关重要的

拓展:

react和vue的区别

1、设计思想上的区别(数据是不可变的)vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。

把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中,是单向数据流,推崇结合immutableJs来实现数据不可变

react中数据都是进行手动更改达到视图更新,而vue是响应式的进行更改。

2、通过js来操作一切,还是用各自的处理方式react的思路是all in js,通过js来生成html,所以设计了jsx,还有通过js来操作css,社区的styled-component、jss等,

vue是把html,css,js组合到一起,用各自的处理方式,vue有单文件组件,可以把html、css、js写到一个文件中,html提供了模板引擎来处理。

3、类式的组件写法,还是声明式的写法react是类式的写法,api很少,也有傻瓜组件的函数式写法

而vue是声明式的写法,通过传入各种options,api和参数都很多。

所以react结合typescript更容易一起写,vue稍微复杂。不过vue3.0也全面支持typescript。而且vue3.0也更加趋向于react了。这一点在2019年年末推出的vue3.0先行版本已经体现。所以这一点也不在是区别,而是共同点

4、组件封装(扩展)react的高阶组件hoc进行封装,react提倡精度更细,纯渲染的的组件封装,也就是什么都交给js去做

vue使用mixins进行扩展

5、社区活跃react做的事情很少,很多都交给社区去做

vue很多东西都是内置的,写起来确实方便一些,

接下来说一些更细致的区别,也可以说是它们的缺陷,也是对上述几点的补充

1、复用组件react不太适合复杂逻辑。代码复杂性随着内联模板和 JSX 的增加而增加。如果有太多的小组件可能增加项目的庞大和复杂

vue在这点做的很好。但是vue的数据双向绑定(响应式)导致数据的稳定性不足,过多的数据会产生过多的watch,从而导致性能上降低。

vue2.0+和react都是单向数据流,只不过vue实现了数据双向绑定的语法糖,不要混淆了同志们。

2、入门难度vue对于新手比较友好。react有一个学习曲线。

react也比较趋向于面向对象写法。

3、性能优化vue的性能上相比与react还是比较高效的。例如react在渲染的时候对将组件以及后代组件全部重新渲染,当然也不是完全重新渲染,但是这种对比不同点渲染又会带来新的性能损耗。

而vue的更新要比react粒度要更细也更加不用去人为的关心,

虽然react可以使用shouldComponentUpdate和pureComponent帮助我们对此进行优化,但仍然不及vue性能

但是react的手动性能优化要强于vue,因为react编写自由度更高

4、代码量react的高自由度也代表的开发功能的复杂性,几乎所有的功能逻辑都需要自己手动编写,这无疑提升的项目成本

vue虽然有些功能不够完善,但是自己开发设计也不会太过困难。

vue生产打包体积更小,实现功能的代码也要比react少。

5、渲染机制(对于第三点的补充)vue的订阅机制能够明确知道哪个value发生了改变,然后只重新渲染该部分即可

react只要调用的setState就会触发render重新渲染,甚至视图什么数据都没使用,它不关心也不知道是哪个数据发生了改变。当组件或节点比较多的时候,更新数据可能会造成很多不必要的虚拟DOM的构建,庞大的节点树也拖慢了diff的速度,这时就需要引入一些优化方案,比如PureComponent配合ImutableJS, PureComponent利用props和state属性的浅对比来决定要不要重渲染,如果浅对比结果是相等,则组件及其子组件不参与重渲染。

更多web前端知识,请查阅 HTML中文网 !!

本网页由快兔兔AI采集器生成,目的为演示采集效果,若侵权请及时联系删除。

原文链接:https://blog.csdn.net/weixin_33369808/article/details/118393020

更多内容