初识React【www.129028.com金沙】

日期:2020-05-07编辑作者:Web前端

时间: 2019-09-07阅读: 162标签: 渲染搜索引擎真的需要已经预渲染的应用吗?

www.129028.com金沙 1

谷歌已经明确表示,他们会在抓取你的网站之前运行你的JavaScript代码。准确地说,他们的爬虫(crawler)中运用Chrome 41浏览器打开网站,和真实用户用浏览器打开一样!但是还有其他搜索引擎和社交媒体网站可能并不会这么做。

react.png

我知道人们太关心搜索引擎优化了,总是试图尽可能地提高。很自然的,每个人都想在不运行任何JavaScript的情况下直接显示搜索引擎的内容。这不是一个坏主意,相信很多人都这么尝试过。

React的核心思想是:封装组件,再由组件构成复杂页面,同时各个组件维护自己的状态和UI,当状态发生变化,自动重新渲染整个组件。

React 是一个用于构建用户界面的JavaScript库,它起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。

React主要用于构建UI,而且性能出众,代码逻辑简单,所以我打算好好研究一下,既满足了自己的好奇心,也提高一下自己的技术水平。

在学习的过程中我参考了阮大大的React教程React 官方文档

*这不仅有利于搜索引擎优化*,而且还具一些性能优势。浏览器不必等待JS文件加载后才开始渲染,首次有效渲染(First Contentful Paint)的时间会更短。

React特点

  1. 声明式设计 : 以声明式编写UI,可以让你的代码更加可靠,且方便调试
  2. 高效 : React通过对DOM的模拟,最大限度的减少与DOM的交互
  3. 灵活 : 提供了可以调用其他第三方框架或库的接口
  4. JSX : JSX是JavaScript语法的扩展,建议开发过程中使用它
  5. 组件 : 通过React构建拥有各自状态的组件,再由组件构成更加复杂的界面,代码更加容易得到复用
  6. 单向响应的数据流 : React实现了单向响应的数据流,减少了重复代码

React App 如何预渲染?

创建新应用

1.React可以直接下载使用,下载包中提供了很多学习的实例,可以去官网下载最新版

2.使用create-react-app构建React开发环境(需要安装node.js,另一系列文章中会提到node的安装,大家也可自行搜索安装方法)

create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境
create-react-app 自动创建的项目是基于 Webpack + ES6

执行以下命令创建新项目:


npm install -g create-react-app

create-react-app my-app

cd my-app
npm start

在浏览器中打开 http://localhost:3000/ ,结果如下图所示:

www.129028.com金沙 2

image.png

项目的目录结构如下所示 :

www.129028.com金沙 3

project.png

尝试修改src/App.js文件里的代码 :

www.129028.com金沙 4

App.js.png

修改之后再打开 http://localhost:3000/ (一般会自动刷新), 会发现输出结果已经改变:

www.129028.com金沙 5

browser.png

当你准备好将其部署到生产环境中时,运行 npm run build 将会在 build 文件夹中创建一个优化好的应用

该文章同步在:
CSDN Blog: http://blog.csdn.net/levinhax/article/details/76651535
Github Page: https://github.com/levinhax

原理其实很简单,在我们使用npm run build构建React App后,我们用真实浏览器渲染build目录(通常是index.html), 然后获取产生的HTML代码保存到一个文件中,只是所有的内部页面都需要重复相同的操作。

感谢react-snap让这一切变得简单。

本文由www.129028.com金沙发布于Web前端,转载请注明出处:初识React【www.129028.com金沙】

关键词:

nginx负载均衡如何实现www.129028.com金沙?

什么是nginx? Nginx是一个免费的,开源的,高性能的服务器和反向代理服务器软件,同时它也可以为IMAP和POP3服务器代...

详细>>

最少编码原则

这的确是大多数程序员,甚至是那些高级程序员都很容易混淆的一个重点。作为一名程序员,编写代码无疑是你职业...

详细>>

CSS中cursor 鼠标指针光标样式

值 前面url()是自定义鼠标的样式,图像的地址,后面的参数是 css 标准的 cursor样式,(IE下面可以不需要) 出现版本...

详细>>

AJAX:如何处理书签和后退按钮(1)

或者如果你不喜欢onclick: window.onload = initialize;function initialize() { // initialize the DHTML History // framework dhtmlHistory.initial...

详细>>