omi/tutorial/omi-snap.cn.md

2.2 KiB
Raw Blame History

Omi Snap - 做Prerender的Snap模版

像 OmiReact 之类的 JavaScript 框架在 JavaScript 下载之前没有显示任何内容,所有的内容都是 JS 生成HTML、CSS以及延迟加载或者预加载的 chunk 都是 JS 在操纵)。 因此,用户会在一段时间内看到空白页面,获得糟糕的用户体验。 Omi Snap解决了这个问题在构建中加入了标记HTML / CSS因此用户可以在下载 JavaScript 文件时就能看到 UI 内容,从而获得更好的用户体验。


Usage

$ npm i -g omi-cli    # 安装omi-cli
$ omi init-snap myapp # 用omi-cli生成omi-snap模版
$ cd myapp
$ npm start           # 开发   
$ npm run build       # 建立模版 - 自动加入标记

什么是Snap(Prerender)

omi-cli创建一个默认的omi模板HTML是一个空白因为所有都是由JavaScript呈现的。

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
    <meta name="theme-color" content="#000000">
    <link rel="manifest" href="./manifest.json">
    <link rel="shortcut icon" href="./favicon.ico">
    <title>Omi</title>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    <script src="./static/js/index.bb813127.js"></script>
  </body>
</html>

所以你打开页面的话加载JavaScript文件之前会看到空的页面。

blank

但,omi-snap是用snap功能加入标记(HTML/CSS)然后产生HTML文件。所以你打开页面后至少可以看到基本的内容。

initial

看如下照片可以知道用snap生成的模版会有标记(HTML/CSS)。

html

Omi模版和Omi Snap模版有什么区别

Omi模板

打开页面后只能看到空的页面,等几秒后才能看到内容。

omi-template

Omi Snap模板

打开后,可以马上看到内容。

omi-snap-template

开始吧

→ omi-snap Github