SponsorLink 组件
赞助商链接组件集合,用于显示赞助商信息和追踪点击。
导出内容
SponsorLink
主赞助商链接组件,显示赞助商 Logo。
BecomeSponsorLink
"成为赞助商"链接组件。
BuiltWithLink
"使用技术"链接组件。
SponsorLink Props
interface SponsorLinkProps {
name: string; // 赞助商名称
url: string; // 链接地址
logo: string; // Logo 图片路径
darkLogo?: string; // 深色模式 Logo(可选)
className?: string; // 额外的 CSS 类
}
BecomeSponsorLink Props
interface BecomeSponsorLinkProps {
href: string; // 链接地址
children: ReactNode; // 子元素
className?: string; // 额外的 CSS 类
}
BuiltWithLink Props
interface BuiltWithLinkProps {
href: string; // 链接地址
toolName: string; // 工具名称(用于分析)
children: ReactNode; // 子元素
}
分析追踪
所有组件都集成分析追踪:
// SponsorLink
analyticsSponsor.click(name, url);
// BecomeSponsorLink
analyticsSponsor.becomeSponsorClick();
// BuiltWithLink
analyticsSponsor.builtWithClick(toolName);
Logo 显示逻辑
- 有 darkLogo:根据主题显示不同 Logo
- 无 darkLogo:使用
dark:invert反转颜色
依赖
next/link- 链接组件next/image- 图片组件@/lib/analytics- 分析追踪
使用示例
import {
SponsorLink,
BecomeSponsorLink,
BuiltWithLink
} from "@/components/layout/sponsor-link";
// 赞助商链接
<SponsorLink
name="Vercel"
url="https://vercel.com"
logo="/sponsors/vercel.svg"
darkLogo="/sponsors/vercel-dark.svg"
/>
// 成为赞助商
<BecomeSponsorLink href="https://github.com/sponsors/xxx">
成为赞助商
</BecomeSponsorLink>
// 使用技术
<BuiltWithLink href="https://nextjs.org" toolName="Next.js">
<NextJsLogo />
</BuiltWithLink>
样式说明
SponsorLink
- 透明度: 60% (
opacity-60) - 悬停透明度: 100% (
hover:opacity-100) - Logo 高度: 36px (
h-9)
其他
- 继承父级样式
- 新标签页打开 (
target="_blank") - 安全属性 (
rel="noopener noreferrer")