我想创建一个电子商务平台,需要在服务器上渲染页面(在服务器上计算初始状态),但使用 React 或 vue 组件进行过滤,通过使用 api 调用获取过滤后的数据来更改初始状态。< /p>
您知道任何支持在一个路由/页面中结合服务器端和客户端渲染的 JavaScript 框架吗?
Next JS 可以实现这一点。它支持服务器端和客户端渲染。
这是一个结合了两者的示例:
import { useState } from 'react' import { useRouter } from 'next/router' function EventList({ eventList }) { const [events, setEvents] = useState(eventList) const router = useRouter() const fetchSportsEvents = async () => { const response = await fetch('http://localhost:4000/events?category=sports') const data = await response.json() setEvents(data) router.push('/events?category=sports', undefined, { shallow: true }) } return ( Sports Events List of events {events.map(event => { return ( {event.id} {event.title} {event.date} | {event.category} {event.description} ) })} > ) } export default EventList export async function getServerSideProps(context) { const { query } = context const { category } = query const queryString = category ? 'category=sports' : '' const response = await fetch(`http://localhost:4000/events?${queryString}`) const data = await response.json() return { props: { eventList: data } } }
{event.description}
Next JS 可以实现这一点。它支持服务器端和客户端渲染。
这是一个结合了两者的示例: