静态服务器函数是在构建时执行的服务器函数,在使用预渲染/静态生成时,它们会作为静态资源被缓存。可以通过向 createServerFn 传入 type: 'static' 选项来将其设置为“静态”模式。
const myServerFn = createServerFn({ type: 'static' }).handler(async () => {
return 'Hello, world!'
})
const myServerFn = createServerFn({ type: 'static' }).handler(async () => {
return 'Hello, world!'
})
此模式的工作方式如下:
默认情况下,静态服务器函数缓存实现在构建输出目录中通过 Node 的 fs 模块存储和检索静态数据,并且在运行时使用对相同静态文件的 fetch 调用来获取数据。
可以通过导入并调用 createServerFnStaticCache 函数来创建自定义缓存实现,然后调用 setServerFnStaticCache 来设置它,从而自定义此接口。
import {
createServerFnStaticCache,
setServerFnStaticCache,
} from '@tanstack/react-start/client'
const myCustomStaticCache = createServerFnStaticCache({
setItem: async (ctx, data) => {
// Store the static data in your custom cache
},
getItem: async (ctx) => {
// Retrieve the static data from your custom cache
},
fetchItem: async (ctx) => {
// During runtime, fetch the static data from your custom cache
},
})
setServerFnStaticCache(myCustomStaticCache)
import {
createServerFnStaticCache,
setServerFnStaticCache,
} from '@tanstack/react-start/client'
const myCustomStaticCache = createServerFnStaticCache({
setItem: async (ctx, data) => {
// Store the static data in your custom cache
},
getItem: async (ctx) => {
// Retrieve the static data from your custom cache
},
fetchItem: async (ctx) => {
// During runtime, fetch the static data from your custom cache
},
})
setServerFnStaticCache(myCustomStaticCache)
您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。