我有一个列表,它迭代对象数组,并生成依赖于当前对象的列表项。
必须使用对象作为参数进行计算,并返回一个承诺。问题是,当呈现列表时,它只能访问 Promise 对象(处于待处理状态),并且在解析后不会更新。
<md-list id="orderList">
<md-list-item v-for="order in orders" :key="order.id" @click="orderDialog(order)">
{{ asyncFunction(order) }}
</md-list-item>
</md-list>
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得所需的行为?
我试图了解 SvelteKit 如何在不同的场景中呈现我的网络应用程序,并且我对load().
我创建了一个带有加载函数的页面,该函数调用外部 API 并使用响应作为组件的 prop。我.svelte-kit/output/prerendered/pages/mypage.html可以看到它在构建步骤中获取了数据,并使用响应预渲染了我的 html。
然后,当我导航到 Web 应用程序中的该页面时,网络选项卡告诉我它在渲染之前调用外部 API。那么,预渲染的意义何在呢?
SvelteKit 文档说:
定义页面或布局的组件可以导出在创建组件之前运行的加载函数。此函数在服务器端渲染期间和客户端中运行,并允许您在页面渲染之前获取和操作数据,从而防止加载微调器。
我不明白这一点。如果每次导航到页面时都会调用 API,如何阻止加载微调器?什么时候应该使用预渲染的 html?
在客户端和服务器中渲染的整个概念对我来说没有意义。在我看来,如果数据是静态的,我希望在服务器上进行预渲染,但如果数据发生变化,那么我希望每次访问该页面时都调用 API(可能需要缓存)。但为什么我想两者都做?
const createFruit = <T extends string[]>(fruits: T): typeof fruits[0] => fruits[0]
const fruit = createFruit(['apple', 'orange']) // fruit is of type `string`
Run Code Online (Sandbox Code Playgroud)
我希望将 的类型fruit推断为字符串文字apple。难道就没有办法了吗?