邮件链接

渲染一个格式化的链接,用于发送邮件(mailto:链接)。

  • 使用emailsubjectbody属性创建一个带有适当href属性的<a>元素。
  • 使用encodeURIcomponentsubjectbody安全地编码到链接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>
);