一、 前言
在前幾天的文章中,我們的「AI 酒館」已經變得非常生動:不僅有精美的暗色介面、雙向語音支援、Gemini AI 動態對話,還有流暢的打字機特效與自動捲動。不過,只要手殘按到「重新整理(F5)」,剛剛和調酒師聊得火熱的對話紀錄就會瞬間歸零,這對玩家的體驗來說無疑是一大硬傷。
為了讓酒館具備真正的「記憶力」,今天的核心任務是透過瀏覽器內建的 localStorage,將對話紀錄完整保存下來!
二、 為什麼前端專案需要對話持久化?
在開發網頁型 AI 應用時,資料儲存的權衡非常重要:
三、 實作步驟與核心程式碼
下達 Vibe Coding 需求
我們透過 AI 助手在 React 狀態管理中加入 localStorage 的讀寫邏輯,讓每當 messages 陣列更新時,自動同步儲存至瀏覽器本地端。
核心 LocalStorage 邏輯實作
前端處理儲存與讀取的程式碼概念大致如下:
import { useState, useEffect } from 'react';
// 初始化時從 localStorage 讀取紀錄
const savedMessages = localStorage.getItem('chat_messages');
const initialMessages = savedMessages ? JSON.parse(savedMessages) : defaultMessages;
export function useChatPersistence() {
const [messages, setMessages] = useState(initialMessages);
useEffect(() => {
// 當 messages 改變時,自動寫入 localStorage
localStorage.setItem('chat_messages', JSON.stringify(messages));
}, [messages]);
return { messages, setMessages };
}
四、 今日心得與預告
今日心得:加上 localStorage 後,我們的 AI 酒館終於有了「記憶」!不管是重新整理還是關閉瀏覽器重開,對話都能完美保留,實用度直接暴增。
明日預告 (Day 08):【功能】多角色切換與獨立對話狀態!讓玩家可以自由在調酒師 Mark 與吟遊詩人 Bard 之間切換,擁有各自獨立的對話宇宙!