【简介】当今世界,技术发展非常迅速,变化也很快,开发者需要更多的开发工具来解决不同的问题。本文对目前主流的前端开发技术React、Vue、Angular做了比较详细的探索。目的就是揭开这些前端技术的面纱,一睹它们的真面目。[React]React(也称为React.js或ReactJS)是一个用于构建用户界面的JavaScript库。它由Facebook和一个由个人开发者和公司组成的社区维护。React可以作为开发单页或移动应用程序的基础。然而,React只专注于将数据渲染到DOM,因此创建React应用程序通常需要使用额外的库来进行状态管理和路由,Redux和ReactRouter分别是此类库的示例。基本用法下面是一个在HTML中使用JSX和JavaScript的React的简单示例。Greeter函数是一个接受属性问候语的React组件。变量App是Greeter组件的一个实例,其greeting属性设置为“HelloWorld!”。然后,ReactDOM.render方法在DOM元素(id为myReactApp)中呈现我们的Greeter组件。当在Web浏览器中显示时,结果将是:独特的功能组件化React代码由称为组件的实体组成。可以使用ReactDOM库将组件渲染到DOM中的特定元素。在渲染组件时,可以传入称为“props”的值。React中声明组件的两种主要方式是通过功能组件和基于类的组件。函数式函数组件函数式组件使用返回一些JSX的函数来声明。类组件基于类的组件使用ES6类声明。它们也被称为“有状态”组件,因为它们的状态在整个组件中保持不变,并且可以通过props传递给子组件。虚拟DOM的另一个值得注意的特性是React使用虚拟文档对象模型,也称为虚拟DOM。React在内存中创建数据结构缓存,计算变化的差异,只渲染真正发生变化的子组件,从而高效地更新浏览器显示的DOM。生命周期方法生命周期方法是挂钩处理程序,允许代码在组件生命周期内的设定点执行。shouldComponentUpdate允许开发人员通过在不需要渲染时返回false来防止不必要的组件重新渲染。componentDidMount在组件被“挂载”后调用(组件已在UI中创建,通常通过将其与DOM节点相关联)。这通常用于触发通过API从远程数据源加载数据。componentWillUnmount在组件被卸载或“卸载”之前立即被调用。这通常用于清理组件的资源依赖性,这些资源依赖性在卸载组件时不会被简单地删除(例如,删除与组件关联的任何setInterval()实例,或者在文档中设置的“eventListener”中)。render是最重要的生命周期方法,也是唯一必须存在于任何组件中的方法。通常在每次更新组件状态时调用它。JSXJSX,JavaScriptXML,是对JavaScript语言语法的扩展。JSX在外观上类似于HTML,它提供了一种使用开发人员熟悉的语法来呈现结构化组件的方法。React组件通常使用JSX编写,但并非必须如此(组件也可以使用纯JavaScript编写)。JSX类似于Facebook为PHP创建的另一种名为XHP的扩展语法。JSX代码示例:嵌套元素同一层次的多个元素需要包裹在一个容器元素中,比如上图中的
元素。属性JSX提供了一组元素属性,旨在与HTML提供的属性相对应。这些自定义属性也可以传递给组件,所有属性都将作为props被组件接收。JavaScript表达式JavaScript表达式(但不是语句)可以通过花括号{}在JSX中使用。上面代码的显示结果是:条件语句JSX中不能使用if-else语句,可以使用条件表达式代替。以下示例呈现{i===1?'true':'false'}作为字符串'true'当i为1时。结果将是:函数和JSX可以在条件表达式中使用:结果将是:用JSX编写的代码需要通过诸如此类的工具进行转换作为Babel之前它可以被Web浏览器理解,这个处理一般是在部署构建的应用程序之前的软件构建过程中。超越HTML的架构React的基本架构不仅仅用于在浏览器中呈现HTML。例如,Facebook有可以渲染到