如何加強網站的SEO - 框架篇
相信很多人看到上一篇文章大概都嚇壞,甚至打退堂鼓了
心裡開始想:什麼?難道要做SSR是這麼複雜的事情?
其實任何的方式都可以簡單也可以複雜,只是你有沒有選擇對的工具和方法
之前已經有很多人注意到了這點,所以框架的框架也誕生了
SEO全系列文章
📌 如何加強網站的SEO - 基礎篇
📌 如何加強網站的SEO - 進階篇
📌 如何加強網站的SEO - SSR與CSR篇
📌 如何加強網站的SEO - 同構篇
📌 如何加強網站的SEO - 框架篇
📌 如何加強網站的SEO - 資安篇
什麼是框架的框架
大家熟知的框架當然就是React和Vue
我們都知道這兩個都是開發前端網頁很有名的框架
但是有團隊非常熱心的開發了框架的框架,加速和解決大家開發程式所遇到的問題
因此之後就有了Nextjs與Nuxtjs,以下帶大家了解
為什麼需要Nextjs
讓我們來看看官方的這段話
1 | Next.js gives you the best developer experience with all the features you need for production: hybrid static & server rendering, TypeScript support, smart bundling, route pre-fetching, and more. No config needed. |
Nextjs解決了以往的開發體驗,解決很多開發者時常遇到的問題,當然也包含了SSR的問題。
這邊我也要澄清一點,框架的誕生並非只是為了解決SSR,而是為了解決開發者遇到的種種問題而誕生的。
只是Next能夠節省很多開發SSR的時間和問題,因此通常會是做SSR的首選。
官方另外在網站上列出了很多優點,這些就請各位慢慢看了。
如何使用
根據官方文件的方式
安裝步驟也很簡單
安裝
1
npm install next react react-dom
設置package.json的開發指令
1
2
3
4
5"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
}啟動觀看
輕鬆輸入指令,即可觀看
使用方式可參考官方寫法:1
2
3dev - Runs next dev which starts Next.js in development mode
build - Runs next build which builds the application for production usage
start - Runs next start which starts a Next.js production server
在開發的時候,建議使用dev
撰寫components
根據官方的寫法,資料夾相當於網址的路徑,例如:pages
下面的範例,你可以嘗試放在pages:
1 | function HomePage() { |
之後到localhost即可查看結果
這樣就完成了,非常簡單
路徑
上面提到的資料夾相當於路徑的問題,這邊列出官方文件的介紹
- Index routes
其實跟前端框架開發一樣,在指令的資料夾放index.js即可視為指定路徑的主頁1
2
3
4The router will automatically route files named index to the root of the directory.
pages/index.js → /
pages/blog/index.js → /blog
範例:
1 | import Link from 'next/link' |
- Nested routes
這裡要表示的就是巢狀路徑的概念而已1
2
3
4The router supports nested files. If you create a nested folder structure files will be automatically routed in the same way still.
pages/blog/first-post.js → /blog/first-post
pages/dashboard/settings/username.js → /dashboard/settings/username
範例:
1 | import Link from 'next/link' |
- Dynamic route segments
如果你想要用動態路徑,則需要使用方括號的語法來匹配1
2
3
4
5To match a dynamic segment you can use the bracket syntax. This allows you to match named parameters.
pages/blog/[slug].js → /blog/:slug (/blog/hello-world)
pages/[username]/settings.js → /:username/settings (/foo/settings)
pages/post/[...all].js → /post/* (/post/2020/id/title)
範例:
1 | import Link from 'next/link' |
那麼SSR呢?
在開發Nextjs的同時,你已經在撰寫Server-side的程式碼了,所以不用擔心寫的程式還需要弄什麼Webpack, 套件…有的沒的東西
你只需要專注在開發上,即可完成你所需要的程式。
總結
將工具導入到專案上,也許會增加大家開發的門檻,但是如果能用這些工具來增加開發的產值和加速開發的話,為何不採用呢?
當然在選用的時候,需要和大家達成共識並且使用,也許這些新工具在團隊選用上,並非那麼快可以讓大家去接受,但是只要有系統性的規劃,相信嘗試的導入技術,可以帶給大家更好的開發體驗。