邮件链接
渲染一个格式化的链接,用于发送邮件(mailto:
链接)。
- 使用
email
、subject
和body
属性创建一个带有适当href
属性的<a>
元素。 - 使用
encodeURIcomponent
将subject
和body
安全地编码到链接URL中。 - 使用
children
作为链接的内容进行渲染。
const Mailto = ({ email, subject = '', body = '', children }) => {
let params = subject || body ? '?' : '';
if (subject) params += `subject=${encodeURIComponent(subject)}`;
if (body) params += `${subject ? '&' : ''}body=${encodeURIComponent(body)}`;
return <a href={`mailto:${email}${params}`}>{children}</a>;
};
ReactDOM.createRoot(document.getElementById('root')).render(
<Mailto email="foo@bar.baz" subject="你好 & 欢迎" body="你好,世界!">
给我发邮件!
</Mailto>
);