react-snap_无需配置的预渲染单页应用

更新日期:2020年09月02日 投稿作者:分类目录网 围观人数:452

react-snap

描述:无需配置的预渲染单页应用

react-snap一个零配置的静态 SPA 单页应用预渲染框架。


react-snap安装

yarn add --dev react-snap

package.json:

"scripts": {
  "postbuild": "react-snap"
}

src/index.js:

import { hydrate, render } from "react-dom";

c***t rootElement = document.getElementById("root");
if (rootElement.hasChildNodes()) {
  hydrate(<App />, rootElement);
} else {
  render(<App />, rootElement);
}


react-snap react-snap_无需配置的预渲染单页应用 第1张 react-snap_无需配置的预渲染单页应用 第2张 react-snap_无需配置的预渲染单页应用 第3张

Pre-renders web app into static HTML. Uses headless chrome to pre-render. Crawls all available links starting from the root. Heavily inspired by prep and react-snapshot , but written from scratch. Uses best practices to get best loading performance.

Does not depend on React . The name is inspired by react-snapshotand because the initial goal was to enable seamless integration with create-react-app. Actually, it works with any technology. C***idering to change the name.

Features

  • Enables SEO (google, duckduckgo...) and SMO (twitter, facebook...) for SPA.
  • Works out-of-the-box with create-react-app - no code-changes required.
  • Uses real browser behind the scene, so no issue with unsupported HTML5 features, like WebGL or Blobs.
  • Crawls all pages starting from the root, no need to list pages by hand, like in prep.
  • With prerendered HTML and inlined critical CSS you will get fast first paint, like with critical .
  • With Preload resourcesfeature you will get faster first interaction time if your page does do AJAX requests.
  • Works with webpack 2 code splitting feature
  • Handles sourcemaps

Please note: some features are experimental, but basic prerendering is c***idered stable enough. API is subject to change before freeze in version 1.0.

Basic usage with create-react-app

Install:

yarn add --dev react-snap

Change package.json:

" scripts " : {  " build " : " react-scripts build && react-snap " }

Change src/index.js(for React 16+):

import { hydrate , render } from  ' react-dom ' ; c***t rootElement = document . getElementById ( ' root ' );  if ( rootElement . hasChildNodes ()) {  hydrate ( < App / > , rootElement);  } else { render ( < App / > , rootElement);  }      

That's it!


声明:本站资源收集于网络,但不代表本站的观点和立场,具体内容可自行甄别,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

db是什么意思?(.db文件的正确打开方式)

db是什么意思?(.db文件的正确打开方式) db是什么意思?   db一般用记事本打开。db是datebase的缩写,是数据库文件。 用UltraEdit软件打开db文件:   1.点击打开网页浏览器,输入百度网址打开百度首页,然后再搜索窗口输入UltraEdit,然后点击百度一下。   2.点击百度一下以后出现免费下载的网站链接,找到

STDLib_支持科学和数字化的基于 web 的机器学习应用的开源库

STDLib 简介:支持科学和数字化的基于 web 的机器学习应用的开源库 STDLib是一个基于 JavaScript 和 Node.js 应用的开源库,如果您正在寻找一种在浏览器中运行,支持科学和数字化的基于 web 的机器学习应用,STDLib 能满足你的需要。 这个库能提供全面而先进的数学和统计学上的功能,来帮助你构建高性能的机器学习模型。你同样也可以使用它丰富的功能来构建应用程序和其他的库。除此之外,如果你想要一个数据可视化和探索性数据分析的框架 —— STDLib,

johnny-five_Bocoup 的 JavaScript 机器和物联网编程框架

Johnnt-Five 是一个支持 JavaScript 语言编程的机器人和 IOT 开发平台,基于 Firmata 协议,一个机器人技术和物联网的编程框架。