本章節會說明幾項常見於 Arkhi 的問題,更加詳細內容請訪問 Vike Documentation。
_island_id
檢查該元件在瀏覽器中是否有 _island_id
這個 attribute,如果沒有的話,請檢查是否有在 Component 加上 {...props}
。
<div _island_id="Foo:0ab234"> ... </div>
此 ID 是用於尋找島嶼位置,以及對應島嶼與其渲染用 prop
的 ID。如果沒有此 ID,很可能是在被轉成島嶼的元件中沒有加上 …prop
,導致 Island()
無法將 id 注入該元件。
import { Island } from "arkhi/client";
const Foo = Island(FooComponent);
function FooComponent({ ...props }:{}) {
return <div {...props}> ... </div>
}
一項常見的問題就是沒有正確的使用島嶼化的元件,而是不小心使用成島嶼化之前的版本,這會造成元件並沒有被視為島嶼而不被前端渲染。
修正方式為改為使用島嶼化的元件即可。
<a>
tag基於渲染流程中的設計,當出現巢狀連結時會出現渲染錯誤。此時需要將該 <a>
標籤重新設計,避免著創 anchor 造成巢狀問題。
嚴格而言,前後端是兩個部份分開打包,因此容易會出現將 fs、path 等 node 套件不小心打包到前端而造成的錯誤。
這個問題的處理方法有幾個思路
因為 Vite 本身已經滿足這部份需求,例如 env 可以透過 Vite 取得,或是能夠直接載入 json、css 檔案,可以避免直接操作伺服器端資源的情形。
可以撰寫 Vite 插件,自訂客製化檔案載入流程,載入特定類型的檔案。
諸多相關預寫好的插件可參考 awesome vite。