使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接复制文档 Markdown 到剪贴板
条件内容 / Intlayer 中的条件
条件如何工作
在 Intlayer 中,通过 cond 函数实现条件内容,该函数将特定条件(通常是布尔值)映射到其对应的内容。这种方法使您能够根据给定条件动态选择内容。当与 React Intlayer 或 Next Intlayer 集成时,会根据运行时提供的条件自动选择适当的内容。
设置条件内容
要在您的 Intlayer 项目中设置条件内容,请创建一个包含条件定义的内容模块。以下是各种格式的示例。
复制代码到剪贴板
import { cond, type Dictionary } from "intlayer";
const myConditionalContent = {
key: "my_key",
content: {
myCondition: cond({
true: "当条件为真时的内容",
false: "当条件为假时的内容",
fallback: "当条件不满足时的内容", // 可选
}),
},
} satisfies Dictionary;
export default myConditionalContent;
如果未声明 fallback,当条件不满足时将使用最后声明的键作为 fallback。
在 React Intlayer 中使用条件内容
To utilize conditional content within a React component, import and use the useIntlayer hook from the react-intlayer package. This hook fetches the content for the specified key and allows you to pass in a condition to select the appropriate output.
复制代码到剪贴板
import type { FC } from "react";
import { useIntlayer } from "react-intlayer";
const ConditionalComponent: FC = () => {
const { myCondition } = useIntlayer("my_key");
return (
<div>
<p>
{
/* Output: my content when it's true */
myCondition(true)
}
</p>
<p>
{
/* Output: my content when it's false */
myCondition(false)
}
</p>
<p>
{
/* Output: my content when the condition fails */
myCondition("")
}
</p>
<p>
{
/* Output: my content when the condition fails */
myCondition(undefined)
}
</p>
</div>
);
};
export default ConditionalComponent;
To utilize conditional content in Next.js Client Components, retrieve it via the useIntlayer hook. Here's an example:
复制代码到剪贴板
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const ConditionalComponent: FC = () => {
const { myCondition } = useIntlayer("my_key");
return (
<div>
<p>{myCondition(true)}</p>
<p>{myCondition(false)}</p>
</div>
);
};
export default ConditionalComponent;
To utilize conditional content in Vue components, retrieve it via the useIntlayer hook. Here's an example:
复制代码到剪贴板
To utilize conditional content in Svelte components, retrieve it via the useIntlayer hook. The store is accessed with $. Here's an example:
复制代码到剪贴板
To utilize conditional content in Preact components, retrieve it via the useIntlayer hook. Here's an example:
复制代码到剪贴板
import type { FC } from "preact";
import { useIntlayer } from "preact-intlayer";
const ConditionalComponent: FC = () => {
const { myCondition } = useIntlayer("my_key");
return (
<div>
<p>{myCondition(true)}</p>
<p>{myCondition(false)}</p>
</div>
);
};
export default ConditionalComponent;
To utilize conditional content in SolidJS components, retrieve it via the useIntlayer hook. Here's an example:
复制代码到剪贴板
import type { Component } from "solid-js";
import { useIntlayer } from "solid-intlayer";
const ConditionalComponent: Component = () => {
const { myCondition } = useIntlayer("my_key");
return (
<div>
<p>{myCondition(true)}</p>
<p>{myCondition(false)}</p>
</div>
);
};
export default ConditionalComponent;
To utilize conditional content in Angular components, retrieve it via the useIntlayer hook. Here's an example:
复制代码到剪贴板
To utilize conditional content with vanilla-intlayer, retrieve it via the useIntlayer hook. Here's an example:
复制代码到剪贴板
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
installIntlayer();
const content = useIntlayer("my_key").onChange((newContent) => {
document.getElementById("true-content")!.textContent =
newContent.myCondition(true);
document.getElementById("false-content")!.textContent =
newContent.myCondition(false);
});
// Initial render
document.getElementById("true-content")!.textContent =
content.myCondition(true);
document.getElementById("false-content")!.textContent =
content.myCondition(false);
其他资源
有关配置和使用的更多详细信息,请参考以下资源:
这些资源提供了在各种环境和框架中设置和使用 Intlayer 的进一步见解。
