【引言】
当前世界中,技术发展非常迅速并且变化迅速,开发者需要更多的开发工具来解决不同的问题。本文就对于当下主流的前端开发技术React、Vue、Angular这三个框架做个相对详尽的探究,目的是为了解开这些前端技术的面纱,看看各自的庐山真面目。
【React】
React(也被称为React.js或ReactJS)是一个用于构建用户界面的JavaScript库。它由Facebook和一个由个人开发者和公司组成的社区来维护。
React可以作为开发单页或移动应用的基础。然而,React只关注向DOM渲染数据,因此创建React应用通常需要使用额外的库来进行状态管理和路由,Redux和React Router分别是这类库的例子。
基本用法
下面是一个简单的React在HTML中使用JSX和JavaScript的例子。
Greeter函数是一个React组件,它接受一个属性问候语。变量App是Greeter组件的一个实例,其中问候语属性被设置为 “Hello World!”。然后,ReactDOM.render方法将我们的Greeter组件渲染在DOM元素(id为 myReactApp)中。
显著特点
组件化
React代码由称为组件的实体组成。组件可以使用React DOM库渲染到DOM中的一个特定元素。当渲染一个组件时,可以传入被称为 "props "的值。
React中声明组件的两种主要方式是通过功能函数组件和基于类的组件。
功能函数组件
功能组件是用一个函数声明,用来返回一些JSX。
类组件
基于类的组件是使用ES6类来声明的。它们也被称为 "有状态 "组件,因为它们的状态可以在整个组件中保持,并且可以通过props传递给子组件。
虚拟 DOM
另一个值得注意的特点是React使用了虚拟文档对象模型,也就是虚拟DOM。React创建了一个内存中的数据结构缓存,计算得出变化差异,只渲染实际变化的子组件, 从而高效地更新浏览器显示的DOM。
生命周期方法
生命周期方法是指在组件的生命周期内,允许在设定的点执行代码的hooks处理函数。
shouldComponentUpdate允许开发者在不需要渲染的情况下,通过返回false来防止不必要的重新渲染组件。
componentDidMount是在组件 "挂载 "后调用的(组件已经在用户界面中创建了,通常是通过将其与DOM节点关联起来)。这通常用于通过API从远程数据源触发数据加载。
componentWillUnmount是在组件被拆解或 "解挂 "之前立即调用的。这通常用于清除组件的资源依赖关系,这些依赖关系不会随着组件的卸载而简单地被移除(例如,移除任何与组件相关的setInterval()实例,或者因为组件的存在而在 "文档 "上设置的 “eventListener”)。
render是最重要的生命周期方法,也是任何组件中唯一必须存在的方法。它通常在每次更新组件的状态时都会被调用。
JSX
JSX,即JavaScript XML,是对JavaScript语言语法的扩展。JSX在外观上类似于HTML,它提供了一种开发者熟悉的语法结构化组件渲染的方法。React组件通常是使用JSX编写的,尽管不一定非要使用JSX(组件也可以用纯JavaScript编写)。JSX类似于Facebook为PHP创建的另一种名为XHP的扩展语法。
JSX代码的一个例子:
属性
JSX提供了一系列的元素属性,旨在对应HTML提供的属性。这些自定义的属性也可以传递给组件,所有的属性都会被组件作为props接收。
JavaScript表达式
JavaScript表达式(但不是语句)可以在JSX内部通过大括号{}使用。
http://groups.tianya.cn/post-3524-06ce5bed87ef48478ded61507d008788-1.shtml
http://groups.tianya.cn/post-3524-f48fe2c651e94a6eaf912857a2d474ce-1.shtml
http://groups.tianya.cn/post-3524-1fadb7c9f10e4fadb382192f65a82f94-1.shtml
http://groups.tianya.cn/post-3524-8cd5569b39c84d50b6d7375f14ae6732-1.shtml
http://groups.tianya.cn/post-3524-415d11d4016d4623bd2914be297c5d1b-1.shtml
http://groups.tianya.cn/post-3524-97a738e662114a788ee519a12383b34a-1.shtml
http://groups.tianya.cn/post-3524-8cfcf29ea378438a80e7256a0f57dc2e-1.shtml
http://groups.tianya.cn/post-3524-6a86a6e4e79b416ab4acaa9d79b50321-1.shtml
http://groups.tianya.cn/post-3524-3344e2a0d3bb45289d559dcccd466286-1.shtml
http://groups.tianya.cn/post-3524-a6c42e77730b4962bb6f224eaf8f85d2-1.shtml
http://groups.tianya.cn/post-3524-c56ea58dbc0c4c4aa67f7b17b5f28df5-1.shtml
http://groups.tianya.cn/post-3524-421a73e48d1a4333a44057b75d1d7aab-1.shtml
http://groups.tianya.cn/post-3524-31c26d622f994eeda51eb1420f716a0a-1.shtml
http://groups.tianya.cn/post-3524-74ba4164895e4917a6df3c0189fc57b5-1.shtml
http://groups.tianya.cn/post-3524-b5da6ed8c6104bb3b050dff13612e0aa-1.shtml
http://groups.tianya.cn/post-3524-6027061071c14f198787830e70c95088-1.shtml
http://groups.tianya.cn/post-3524-8312fc6734684b659e12b2cc59a98fe5-1.shtml
http://groups.tianya.cn/post-3524-416bc7fa347249be9c40f43ec7891e8c-1.shtml
http://groups.tianya.cn/post-3524-872d5c86531441169e5d5e65a781a95d-1.shtml
http://groups.tianya.cn/post-3524-f00c45c39a6840cb953c0cd45052ca32-1.shtml
http://groups.tianya.cn/post-3524-6f311155270e452484300996b2ea4ce5-1.shtml
http://groups.tianya.cn/post-3524-9db4a49c86384844b1c673c6d448ca9f-1.shtml
http://groups.tianya.cn/post-3524-ab03fa929fb64c17ae2be218a0a0ab5a-1.shtml
http://groups.tianya.cn/post-3524-e0adce5373024f73bab15c83112b531b-1.shtml
http://groups.tianya.cn/post-3524-3871d5551fae4469ac5f4cb4cf4ab8d8-1.shtml
http://groups.tianya.cn/post-3524-20b9b2a311f34425baf6cf95f6116787-1.shtml
http://groups.tianya.cn/post-3524-d18bc458ae3e4e34b782d2ddeaf269fb-1.shtml
http://groups.tianya.cn/post-3524-c5e1643912b44ba3bbff91a491c07c85-1.shtml
http://groups.tianya.cn/post-3524-05ff1d26a7204de1863d0b809ed000bf-1.shtml
http://groups.tianya.cn/post-3524-88f61505c1f9473487eec0feb1839e20-1.shtml
http://groups.tianya.cn/post-3524-97c8004f705e4a3db59e54030cf5ff4e-1.shtml
http://groups.tianya.cn/post-3524-25986d276b004d9a809b08569d7b6d65-1.shtml
http://groups.tianya.cn/post-3524-eb3d44f2935542fb9363c4059f0e5368-1.shtml
http://groups.tianya.cn/post-3524-16eb8ea493764c04b1c9f954b7db2fd0-1.shtml
http://groups.tianya.cn/post-3524-61c590db77cb4dba8afc834e78ba017f-1.shtml
http://groups.tianya.cn/post-3524-d7896e6086424416b706d0bd6db511db-1.shtml
http://groups.tianya.cn/post-3524-7d9e9d91c4c84093a52303e1d8a8f8d4-1.shtml
http://groups.tianya.cn/post-3524-a1b4bf48dd5b4e178a259c6fa6f3b971-1.shtml
http://groups.tianya.cn/post-3524-fce5d840cb7e4ca3afa2785d82da2e04-1.shtml
http://groups.tianya.cn/post-3524-0cee89f1557d4f27838262859df0ac85-1.shtml
http://groups.tianya.cn/post-3524-f0496962cced4829868b35411c310837-1.shtml
http://groups.tianya.cn/post-3524-0e32391c66904884987ed003ce376e16-1.shtml
http://groups.tianya.cn/post-3524-553ed552d3674f2396efd5d382c31edc-1.shtml
http://groups.tianya.cn/post-3524-e706b3b3b6d54883911b879313e194f2-1.shtml
http://groups.tianya.cn/post-3524-8452804b4a184e75abdc2cc49ab1f714-1.shtml
http://groups.tianya.cn/post-3524-7a7dcec462354aa3be11078f7d1d6ea0-1.shtml
http://groups.tianya.cn/post-3524-9509fdd7f0dd41338c1cbe19eccf8097-1.shtml
http://groups.tianya.cn/post-3524-f9e21a213eaf465e87dda2960c81518a-1.shtml
http://groups.tianya.cn/post-3524-c5aaa4a6ba2149f587b3eca07fd4710a-1.shtml
http://groups.tianya.cn/post-3524-61d7849969364624952beba97fedb9d3-1.shtml
http://groups.tianya.cn/post-3524-256742ef8a884b1d95fdf16c0b6ea784-1.shtml
http://groups.tianya.cn/post-3524-4f1ea689319b418ba7892340802e0e7a-1.shtml
http://groups.tianya.cn/post-3524-c6b89b180a0b44f19b3e3a2802ab3e7f-1.shtml
http://groups.tianya.cn/post-3524-2710433ed69346d9aa9e10665977f556-1.shtml
http://groups.tianya.cn/post-3524-29466808cb8840b5b0cbd0903255658a-1.shtml
http://groups.tianya.cn/post-3524-3a6621c41e51413193a37b206b88176f-1.shtml