This commit is contained in:
2026-04-14 12:24:48 +08:00
parent a0c48937ad
commit bb7e654589
11 changed files with 140 additions and 71 deletions

16
src/pages/a/List.tsx Normal file
View File

@@ -0,0 +1,16 @@
"use client";
import { useEffect } from "react";
export default function List({ version }: { version: string }) {
useEffect(() => {
console.log('useEffect in List');
}, []);
return (
<div>
<h1>List - Version {version}</h1>
<div style={{
width: 200
}}>Primary Button</div>
</div>
);
}

View File

@@ -1,13 +0,0 @@
"use client";
import { useEffect } from "react";
export default function List() {
useEffect(() => {
console.log('useEffect in List');
}, []);
return (
<div>
<h1>List 2</h1>
</div>
);
}

18
src/pages/a/main.tsx Normal file
View File

@@ -0,0 +1,18 @@
import List from './List.tsx';
// 模拟异步获取数据
async function fetchData() {
await new Promise(resolve => setTimeout(resolve, 1000));
return { version: '2.0.0', timestamp: Date.now() };
}
// Server Component - 直接 await 获取数据
export default async function ServerApp() {
const data = await fetchData();
return (
<div>
<h2>Server Time: {new Date(data.timestamp).toLocaleTimeString()}</h2>
<List version={data.version} />
</div>
);
}

View File

@@ -1,8 +0,0 @@
// Server component - no 'use client' directive
export default function ServerList() {
return (
<div>
<h1>Server List</h1>
</div>
);
}

View File

@@ -1,18 +1,12 @@
'use server';
import { useEffect } from "react";
import A from '../List';
const getVersion = async () => {
await new Promise(resolve => setTimeout(resolve, 1000));
return '1.0.0';
return '2.0.0';
}
export default async function List() {
export default async function AServer() {
const v = await getVersion();
return (
<div>
<h1>List - Version {v}</h1>
<div style={{
width: 200
}}>Primary Button</div>
</div>
);
return <A version={v} />;
}