6大爱上react 的理由
书写javascript 更加简单
(⚠️js 中混用html 也一直是外界所诟病的一点,好不容易把前端三驾马车分开,现在又搅合在一起)
react 使用一个新的叫做JSX 的语法,它能够让你将html 混入javascript 中一起写。你还是可以编写纯的javascript ,
但是还是建议你尝试一下这种新的写法,因为这样的方式让你的组件更加容易继承。
在render 函数(注:react 声明周期中一部分)中使用html 而不需要拼接字符串的方式是非常令人完美的,经过一段时间以后,这样的编写方式也会变得更加的顺手。
react 用一种特殊的 JSX转换器 将html 片段变成一个个函数。
组件化是未来web 的发展方向
shadow DOM 和一些框架例如 PolymerJS 最近产出了很多的问题。
react 不使用Shadow DOM,相反地它赋予开发者创建自己的组件的能力,这个组件你可以重复利用,结合,构建你自己的核心内容。
我觉得这中方式是单向产出最好的一种方式,因为它使得定义和操作你自己的组件变得非常的简单。
react 性能非常优秀
react创建了自己的虚拟DOM,你自己的组件实际生存的地方。这种方式赋予了开发者极大的灵活性 和惊人的性能优势。
因为react 计算了哪些需要DOM中实施的变化,然后相应的更新DOM树。
利用这种方式,react 避免了大量的DOM操作的消耗,实现了性能非常优异的更新机制。
对于搜索引擎优化非常有效
对于Javascript 框架来说最到的问题是它们对与搜索引擎都不太友好。尽管有些已经有了一些改善,搜索引擎通常对于识别Javascript 较重的
应用有一些困难。
react 在这些框架中脱颖而出,你可以将react 运行在server 端,同时虚拟DOM将render 以后在浏览器端呈现的还是普通的web页面形式。
不需要PhantomJS 和其他技巧。
给予开发者“开箱即用”的开发工具
当你使用react 开发时,别忘了在chrome 浏览器中安装react developer tools 。它使得调试应用非常地简单。
在浏览器中安装好这个拓展工具后,你可以在浏览器的元素板块直接查看virtual DOM ,就像你浏览普通的DOM树一样。
相当得令人称奇,哈!
Facebook 团队在维护这个项目
react 目前是开源项目,这个项目最开始是在Facebook 内部发展起来的。随后,facebook 意识到他们创建了一个非常酷的东西,所以他们向世界共享这个项目。(非常伟大)
facebook 使用react,Instagram’s也使用react。很多很成功的项目都使用react。
额外福利:在手机app 上可以使用react native
一但学会了react ,web应用不是问题。手机开发也可以使用react native 快速上手,学会了一样,再去学别的变得非常容易。
参考文献:
1) shadow DOM : https://www.toobug.net/article/what_is_shadow_dom.html
(我的理解是你看得见,但是摸不着的DOM 元素,影子DOM,这名字起的真好!
可以自己创建,但是无法外部遍历。在react产生之前,是为了隔离框架与外部的代码环境而生的东西。
另:浏览器其实默默的做了非常多的事情。)
6大爱上react 的理由的更多相关文章
- 去大公司还是去小公司工作——要进大公司的核心部门(提升视野,锻炼技能),远离没真本事的小公司,要自我驱动 good
去大公司还是小公司工作?这个问题问大多数 IT 人都会选择前者.如果换一个问法,去大公司还是去初创公司(Startup)工作?或许有极小一部分人能改变一下决定 对于 IT 人来说,选择到大公司工作的理 ...
- react系列从零开始-react介绍
react算是目前最火的js MVC框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到w ...
- React Native之code-push的热更新(ios android)
React Native之code-push的热更新(ios android) React Native支持大家用React Native技术开发APP,并打包生成一个APP.在动态更新方面React ...
- React对比Vue(02 绑定属性,图片引入,数组循环等对比)
import React, { Component } from 'react'; import girl from '../assets/images/1.jpg' //这个是全局的不要this.s ...
- react学习笔记(1):从前后端分离到项目部署
我来到现在这家公司有一年多的时间,一直做的是财政系统相关的产品,前端的技术栈用的是传统的jQuery+bootStrap+requireJs,随着项目的开发,越来越多的弊病凸显出来. 首先是前后端的代 ...
- 前端项目优化 -Web 开发常用优化方案、Vue & React 项目优化
github github-myBlob 从输入URL到页面加载完成的整个过程 首先做 DNS 查询,如果这一步做了智能 DNS 解析的话,会提供访问速度最快的 IP 地址回来 接下来是 TCP 握手 ...
- react项目中引入了redux后js控制路由跳转方案
如果你的项目中并没有用到redux,那本文你可以忽略 问题引入 纯粹的单页面react应用中,通过this.props.history.push('/list')就可以进行路由跳转,但是加上了redu ...
- React.js/HTML5和iOS双向通信
最近,我使用WKWebView和React.js进行双向通信,自己写了React.js嵌入到Native中. Native操作Web,通过两种方式传值 第一种,通过JS传值给Native 通过这种方式 ...
- React中key的讲解
通过阅读React的文档我们知道React这个框架的核心思想是,将页面分割成一个个组件,一个组件还可能嵌套更小的组件,每个组件有自己的数据(属性/状态);当某个组件的数据发生变化时,更新该组件部分的视 ...
随机推荐
- vi 复制或剪切多行超级强大方法
同一个文件:光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc 然后 :'a, 'b co 'c 把 co 改成 m 就成剪切了多个文件:在文件一: 光标移到起始行,输入ma ...
- redis数据库的简单介绍
NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世 ...
- iOS命名规范(转载)
转载地址:http://www.cnblogs.com/qiqibo/archive/2012/09/05/2671553.html 正文: • 格式化代码 ◦ 指针“*”号的位置 ▪ 如:NSStr ...
- ECstore后台报表显示空白问题解决办法
执行如下sql语句: INSERT INTO `sdb_ectools_analysis` (`id`, `service`, `interval`, `modify`) VALUES (1, 'b2 ...
- Centos7下安装docker(1)
1.确认系统没安装任何docker相关的安装包 yum remove docker docker-common docker-selinux docker-engine centos7的docker存 ...
- 分布式消息列队RocketMQ部署
模式: 多Master多Slave模式,异步复制: 每个 Master 配置一个 Slave,有多对Master-Slave,HA 采用异步复制方式,主备有短暂消息延迟,毫秒级. 优点:即使磁盘损坏, ...
- esp8266(3) Arduino通过ESP8266连接和获取网站源代码
http://www.plclive.com/a/tongxinjiekou/2016/0422/374.html 在上一篇8266的基础上,这一篇做个具体的连接网站的例子,供大家参考.上一篇基础篇请 ...
- 各个版本的 Oracle 11.2.0.4下载地址
Oracle 11.2.0.4下载地址 Linux x86: https://updates.oracle.com/Orion/Services/download/p13390677_112040_L ...
- springmvc+ajax文件上传
环境:JDK6以上,这里我是用JDK8,mysql57,maven项目 框架环境:spring+springmvc+mybaits或spring+springmvc+mybatis plus 前端代码 ...
- Python脱产8期 Day02
一 语言分类 机器语言,汇编语言,高级语言(编译和解释) 二 环境变量 1.配置环境变量不是必须的2.配置环境变量的目的:为终端提供执行环境 三Python代码执行的方式 1交互式:.控制台直接编写运 ...