像React/Angular这样的javascript框架解决了什么问题?

像React/Angular这样的javascript框架解决了什么问题?,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我是React-js新手,我一直在试图理解React、Angular等js框架解决了什么真正的问题,以及为什么需要学习它们 当然,当我看到框架的优点时,每个人都在谈论影子/虚拟DOM、路由器、可重用组件等,但后来我偶然发现了下面的链接,其中谈到了一些不同的东西 但我并不清楚 所以我的意思是理解在这些框架出现之前维护js/jquery代码有多困难 每个人都要求学习这些框架,因为它们很受欢迎,但没有一个能清楚地解释为什么它们很受欢迎,它们解决了什么问题,以及它们如何让我们的生活在从头开始创建web应

我是React-js新手,我一直在试图理解React、Angular等js框架解决了什么真正的问题,以及为什么需要学习它们

当然,当我看到框架的优点时,每个人都在谈论影子/虚拟DOM、路由器、可重用组件等,但后来我偶然发现了下面的链接,其中谈到了一些不同的东西

但我并不清楚

所以我的意思是理解在这些框架出现之前维护js/jquery代码有多困难

每个人都要求学习这些框架,因为它们很受欢迎,但没有一个能清楚地解释为什么它们很受欢迎,它们解决了什么问题,以及它们如何让我们的生活在从头开始创建web应用时变得更轻松。

什么是React JS

ReactJS是一个开源JavaScript库,用于专门为单页应用程序构建用户界面。它用于处理web和移动应用程序的视图层。React还允许我们创建可重用的UI组件

React允许开发人员创建可以更改数据的大型web应用程序,而无需重新加载页面。React的主要目的是快速、可扩展和简单。它只在应用程序的用户界面上工作。这与MVC模板中的视图相对应。它可以与其他JavaScript库或框架组合使用,例如MVC中的Angular JS

什么是JS

ReactJS是一个开源JavaScript库,用于专门为单页应用程序构建用户界面。它用于处理web和移动应用程序的视图层。React还允许我们创建可重用的UI组件

React允许开发人员创建可以更改数据的大型web应用程序,而无需重新加载页面。React的主要目的是快速、可扩展和简单。它只在应用程序的用户界面上工作。这与MVC模板中的视图相对应。它可以与其他JavaScript库或框架组合使用,例如MVC中的Angular JS


这是关于一般框架的广泛讨论。说起来容易,React、Angular等使操作DOM元素和重用组件变得更容易,但应用框架通常是关于是否能解决您的问题。

这是一个关于一般框架的广泛讨论。很容易说,React、Angular等更容易操作DOM元素和重用组件,但是应用框架通常是关于是否解决您的问题。

在javascript中,我们使用location.href加载网页,但使用angular/react,我们会自动更新网页。

在javascript中,我们使用location.href加载网页,但使用angular/react,我们会自动更新网页。

您不需要这样做学习它们,但许多人和公司使用它们。它的主要优点是可以将整个站点放在一个网页上,您只需修改数据,它就可以为您更改页面上的元素。例如,您可以考虑将用户名放在此处,当他们单击按钮时,在此处添加另一个列表字段,但您不再需要考虑获取此DOM元素,将其innerHTML设置为用户名,当他们单击按钮时,创建一个新的DOM元素用于输入,另一个用于标签,获取容器元素,附加新的子项。它还允许您更轻松地将数据绑定到DOM元素,因此您可以说此字段用于变量“numberOfItems”,而不用担心获取DOM元素及其值并在需要时将其存储到numberOfItems中;使用React/Angular/等。该变量将始终与用户输入保持最新,而无需更新


TL;DR:这些框架不是必需的,但它们可以帮助您自动处理许多常见的、繁琐的DOM操作,其优化程度可能比您自己实现的要高,代码更少,而且所有内容都集中在一个页面上,而不是每次需要显示新数据或新布局时都必须重新加载页面。

您不需要学习它们,但许多人和公司都在使用它们。它的主要优点是可以将整个站点放在一个网页上,您只需修改数据,它就可以为您更改页面上的元素。例如,您可以考虑将用户名放在此处,当他们单击按钮时,在此处添加另一个列表字段,但您不再需要考虑获取此DOM元素,将其innerHTML设置为用户名,当他们单击按钮时,创建一个新的DOM元素用于输入,另一个用于标签,获取容器元素,附加新的子项。它还允许您更轻松地将数据绑定到DOM元素,因此您可以说此字段用于变量“numberOfItems”,而不用担心获取DOM元素及其val 当您需要时,将其存储到numberOfItems中;使用React/Angular/等。该变量将始终与用户输入保持最新,而无需更新


TL;DR:这些框架不是必需的,但它们可以帮助您自动处理许多常见的、繁琐的DOM操作,其优化程度可能比您自己实现的要高,代码更少,所有这些都在一个页面上,而不必在每次需要显示新数据或新布局时都重新加载页面。

其他人已经提到了这些框架的优点和解决方法

我想补充一下他们可能造成的问题:

我见过许多使用框架的人将其视为锤子,将每个网站视为钉子。换句话说,他们要么不知道,要么不知道,在很多情况下,框架是不需要的。我见过几乎90%静态数据的网页仍然下载整个框架,只是为了提供下拉菜单或其他琐碎的东西。 框架迫使您进入一种生命周期和开发风格,在某些方面,它使一些事情变得更容易,而其他事情则变得越来越复杂。AngularJS的消化周期很糟糕,经常导致并发症。Redux迫使您编写比只处理许多页面上不需要的状态所需的代码多得多的代码。Vue、React和Angular都强制您使用它们的数据创建功能、渲染方式或处理元素间通信的方式。所有这些都比不上vanillaJS。甚至虚拟DOM也有它的问题。 框架的大小往往远远超出需要。我有几个小的库,它们完成了框架所做的大部分工作,但是如果我全部加载,我的代码就在5K以下的范围内。 一些先学习框架的人不知道如何用原始JavaScript编写。他们也倾向于学习写代码的草率方法。不,不是所有人,但很多人不是从vanilla JS开始编写代码的,他们编写的代码往往比需要的要大得多,也更草率。 除非真正需要,否则最好避免使用JavaScript。通常我可以使用原始HTML和CSS来完成我需要做的一切。我发现,即使在超过数千个文件的项目中,我也很少需要使用大量JavaScript。允许浏览器处理HTML和CSS的速度更快,所有处理都以编译速度进行,并且只使用JavaScript处理HTML和CSS无法处理的事情。 这是我的意见。我已经作为一名开发人员工作了将近40年,从IE3时代起,我作为一名高级Web开发人员工作了40年,我支持这些观点

我们都需要更好地学习原始JS,以了解框架在做什么,并真正了解是否需要框架


所以,请投我一票。但在你做之前,要想清楚这一点。您可能会发现我有一个很好的观点。

其他人已经提到了这些框架的优点和解决方法

我想补充一下他们可能造成的问题:

我见过许多使用框架的人将其视为锤子,将每个网站视为钉子。换句话说,他们要么不知道,要么不知道,在很多情况下,框架是不需要的。我见过几乎90%静态数据的网页仍然下载整个框架,只是为了提供下拉菜单或其他琐碎的东西。 框架迫使您进入一种生命周期和开发风格,在某些方面,它使一些事情变得更容易,而其他事情则变得越来越复杂。AngularJS的消化周期很糟糕,经常导致并发症。Redux迫使您编写比只处理许多页面上不需要的状态所需的代码多得多的代码。Vue、React和Angular都强制您使用它们的数据创建功能、渲染方式或处理元素间通信的方式。所有这些都比不上vanillaJS。甚至虚拟DOM也有它的问题。 框架的大小往往远远超出需要。我有几个小的库,它们完成了框架所做的大部分工作,但是如果我全部加载,我的代码就在5K以下的范围内。 一些先学习框架的人不知道如何用原始JavaScript编写。他们也倾向于学习写代码的草率方法。不,不是所有人,但很多人不是从vanilla JS开始编写代码的,他们编写的代码往往比需要的要大得多,也更草率。 除非真正需要,否则最好避免使用JavaScript。通常我可以使用原始HTML和CSS来完成我需要做的一切。我发现,即使在超过数千个文件的项目中,我也很少需要使用大量JavaScript。允许浏览器处理HTML和CSS的速度更快,所有处理都以编译速度进行,并且只使用JavaScript处理HTML和CSS无法处理的事情。 这是我的意见。我已经作为一名开发人员工作了将近40年,从IE3时代起,我作为一名高级Web开发人员工作了40年,我支持这些观点

我们都需要更好地学习原始JS来理解框架是什么 做并真正知道是否需要一个框架

所以,请投我一票。但在你做之前,要想清楚这一点。你可能会发现我的观点很有道理