Andy Tseng 曾郁翔
txshon@gmail.com
Gatsby 是一個好用的 靜態網站生成器 SSG
( Static Site Generator )
使用時下流行的
React.js
Webpack
GraphQL
很多時候 靜態網站 其實 就夠了 !
Gatsby 又 輕 又 快 SEO 又 好 !
部落格、商業網站、行銷網站
簡易電商、個人履歷、攝影作品 都很適合 !
Gatsby 將你的 react 元件 Build 成 HTML
markdown、圖檔、Json 等等資料
同時,也壓進 HTML
例如:
Jekyll ( Ruby ) 、
Hugo ( GoLang )
Wordpress 在伺服器上跑
文章在資料庫中
當使用者訪問網站,Wordpress 使用 PHP 到資料庫把文章取出,再生成 HTML
HTML
請求 Request
資料與程式透過Gatsby 編譯成
文章在資料庫中
HTML deploy 到 Server 上。
當使用者訪問,給他靜態 HTML 回應
HTML
請求 Request
HTML
Deploy
Netlify
Posts
HTML
Data Sources
Data
CMS
APIs
YAML/JSON
Markdown
Build
GraphQL
React
HTML
Styled-componets
CSS
Metadata
/ Plugins
Deploy
Static Host
Self-hosted
AWS S3
Netlify
GitHub Pages
Digital Ocean
Gatsby Cloud
HTML
快速載入
簡易安全
便宜免費
方便快取
不用擔心伺服器與資料庫被攻擊,因為你只有前端的靜態檔案
不需要有資料庫,也不需要從資料庫查詢資料,也沒有伺服器做請求,頁面也不用樣板渲染
靜態網站檔案的主機費用很低,有許多的服務提供免費的架設,如 Github Page
靜態檔案都不會再次下載,網頁顯示速度飛快
HTML
起始更快
漸進開發
前後皆Yes
谷歌喜歡
需要動態的內容再開發,簡易 HTML 可以先上
可以讓大家更快看到你的站,留住更多的眼球
前後端都使用 JS ,方便開發且可以重複使用程式碼
Google 容易抓有混合靜態內容的頁面,對 SEO 有加分效果!
HTML
GraphQL
React
Webpack
HTML
Facebook 2012 內部的 Data Query 語言,
2015 公開發佈
可只傳送元件需要的資料
搭配 React 更好用 !
HTML
Facebook 工程師在 2011 開發的 Javascript framework
Component-based 工作流程
用 Js 來做 HTML 元件的管理
JSX 為其 Template Language
Learn Once, Write Everywhere
HTML
Javascript 打包工具
Code-splitting ( load only you need, load more later )
大社群 -> 多插件
Hot Reloading 即時看到 code 改完的結果
HTML
安裝 Gatsby
用 Gatsby 指令開新站
進入專案的資料夾
開始開發
創建 Production Build
npm install -g gatsby-cli // 安裝 Gatsby client
gatsby new gatsby-site https://github.com/gatsbyjs/gatsby-starter-hello-world
// 專案名稱: gatsby-site 連結為 github 上的 starter kit
cd gatsby-site // 打開專案資料夾 gatsby-site
gatsby develop // 網站在 http://localhost:8000
gatsby build // generating static HTML and per-route JavaScript code bundles
HTML
Gatsby Staters
HTML
曾郁翔
txshon@gmail.com
https://twitter.com/txshon
https://github.com/txs