电影推荐

文档
布局架构

模板入口位于Home.tsx
组件中,该组件协调用户交互和从静态 JSON 文件或您的 Neo4j 数据库检索数据。
主要组件包括
-
用于导航和数据库连接管理的
Header
。 -
用于处理数据库连接配置的
ConnectionModal
。 -
用于通过交互式 UI 元素呈现电影推荐的
Content
。
代码片段
获取和显示推荐
useEffect(() => {
const fetchData = async () => {
setLoading({ main: true, similarGenre: true, otherUsers: true });
if (useReco) {
const { uri, user, password } = JSON.parse(localStorage.getItem('neo4j-connection') ?? '') ?? {};
setDriver(uri, user, password);
await Promise.all([
fetchMovies(queryMainMovie).then(movies => setMainMovie(movies || [])),
fetchMovies(similarByGenre).then(movies => setRecoSimilarGenre(movies || [])),
fetchMovies(queryOtherUsersAlsoWatched).then(movies => setRecoOtherUsers(movies || [])),
]);
setLoading({ main: false, similarGenre: false, otherUsers: false });
}
};
fetchData();
}, [useReco]);
显示错误消息
{recoError ? (
<Flex flexDirection='row' justifyContent='center' alignItems='center'>
<Typography variant='h1'>Data error</Typography>
<Typography variant='body-medium'>
An error occurred while fetching recommendations data. Please ensure you are connected to a Neo4j Database.
</Typography>
</Flex>
) : (
<Content mainMovie={mainMovie} recoSimilarGenre={recoSimilarGenre} recoOtherUsers={recoOtherUsers} />
)}
数据集/连接到 Neo4j 数据库
默认情况下,应用程序使用静态数据集movies.json
进行演示。该模板支持在静态数据集和来自 Neo4j 数据库的实时数据之间动态切换,让您更直观地了解使用您的数据时模板可能是什么样子。
连接到 Neo4j 数据库
<ConnectionModal
open={isConnectionModalOpen}
setOpenConnection={setIsConnectionModalOpen}
setConnectionStatus={setUseReco}
message={{
type: 'warning',
content: 'Ensure you connect to a Neo4j database containing the Recommendation dataset.',
}}
/>