当前位置: 首页 > wzjs >正文

烟台专业做网站河南网站seo推广

烟台专业做网站,河南网站seo推广,宝山做网站公司,软件推广接单平台3D个人简历网站 7.联系我 修改Contact.jsx // 从 react 库导入 useRef 和 useState hooks import { useRef, useState } from "react";/*** Contact 组件,用于展示联系表单,处理用户表单输入和提交。* returns {JSX.Element} 包含联系表单的 …

3D个人简历网站 7.联系我

修改Contact.jsx

// 从 react 库导入 useRef 和 useState hooks
import { useRef, useState } from "react";/*** Contact 组件,用于展示联系表单,处理用户表单输入和提交。* @returns {JSX.Element} 包含联系表单的 JSX 元素*/
const Contact = () => {// 创建一个 ref 对象,用于引用表单元素,方便后续操作const formRef = useRef();// 使用 useState hook 管理表单数据,初始值为包含姓名、邮箱和消息的空对象const [form, setForm] = useState({ name: "", email: "", message: "" });// 使用 useState hook 管理表单提交时的加载状态,初始值为未加载const [loading, setLoading] = useState(false);/*** 处理表单输入框内容变化的函数,更新表单数据。* @param {Object} e - 事件对象* @param {Object} e.target - 触发事件的目标输入框元素* @param {string} e.target.name - 输入框的名称* @param {string} e.target.value - 输入框的当前值*/const handleChange = ({ target: { name, value } }) => {// 扩展原有表单数据,更新当前输入框对应的字段值setForm({ ...form, [name]: value });};/*** 处理表单提交的函数,模拟提交操作。* @param {Object} e - 事件对象*/const handleSubmit = (e) => {// 阻止表单默认提交行为,避免页面刷新e.preventDefault();// 设置加载状态为 true,显示加载提示setLoading(true);// 模拟提交操作,这里可以添加实际的提交逻辑setTimeout(() => {// 打印表单数据到控制台console.log("表单已提交:", form);// 设置加载状态为 false,隐藏加载提示setLoading(false);// 重置表单数据setForm({ name: "", email: "", message: "" });}, 1000);};return (// 外层容器,使用相对定位,根据屏幕尺寸调整布局<section className='relative flex flex-col max-container'>{/* 表单容器,使用弹性布局 */}<div className='flex flex-col'>{/* 页面标题 */}<h1 className='head-text'>联系我</h1>{/* 表单元素,使用 ref 引用,绑定提交事件处理函数 */}<formref={formRef}onSubmit={handleSubmit}className='w-full flex flex-col gap-7 mt-14'>{/* 姓名输入框标签 */}<label className='text-black-500 font-semibold'>姓名{/* 姓名输入框,设置类型、名称、样式、占位符等属性,绑定值和输入变化事件 */}<inputtype='text'name='name'className='input'placeholder='张三'requiredvalue={form.name}onChange={handleChange}/></label>{/* 邮箱输入框标签 */}<label className='text-black-500 font-semibold'>邮箱{/* 邮箱输入框,设置类型、名称、样式、占位符等属性,绑定值和输入变化事件 */}<inputtype='email'name='email'className='input'placeholder='zhangsan@example.com'requiredvalue={form.email}onChange={handleChange}/></label>{/* 消息输入框标签 */}<label className='text-black-500 font-semibold'>您的留言{/* 消息输入框,设置名称、行数、样式、占位符等属性,绑定值和输入变化事件 */}<textareaname='message'rows='4'className='textarea'placeholder='请在此写下您的想法...'value={form.message}onChange={handleChange}/></label>{/* 提交按钮,根据加载状态禁用按钮并显示不同文本 */}<buttontype='submit'disabled={loading}className='btn'>{loading ? "发送中..." : "提交"}</button></form></div></section>);
};// 导出 Contact 组件,供其他文件使用
export default Contact;

http://www.dtcms.com/wzjs/117562.html

相关文章:

  • 昆明网站建设推广优化关键词排名提高方法
  • 网站制作中英文天津微信引流推广精准粉
  • 免费做网站app下载短视频代运营公司
  • 免费网站服务网站开发流程有哪几个阶段
  • 软件代做网站在哪找活aso优化贴吧
  • 酒店网站怎么制作百度统计数据
  • 门户网站开发视频教学做网站好的网站建设公司
  • 网站功能设计整合营销策划方案
  • 黄岛网站建设多少钱营销咨询顾问
  • 网站开发环境怎么写长沙网站托管优化
  • 建设英文网站的请示天津百度快速优化排名
  • wordpress页面的添加海南seo快速排名优化多少钱
  • jsp动态网站开发实训心得北京网站优化策略
  • 商务网站建设的一般流程是什么意思整站seo技术
  • 今科网站建设公司梅州网络推广
  • wordpress ftp 设置windows优化大师的特点
  • php学校网站源码百度推广app怎么收费
  • h5页面可以跳转到小程序吗重庆网站seo建设哪家好
  • 深圳 seo 外贸网站建设 多语种百度搜索风云榜小说
  • 咸阳网站开发google play下载安装
  • 湛江建设工程交易中心网站百度站长工具seo查询
  • https网站建设花费百度关键词搜索优化
  • 顺义建站公司搜狗网址
  • 做爰全过程免费费网站网络seo啥意思
  • 建设商城网站费用如何把网站推广
  • 山西网站的公司谷歌账号
  • 记事本做网站代码重庆seo网站建设
  • 新网做网站怎么上传怎么优化推广自己的网站
  • 西安定制网站网络营销服务商
  • 网站上线之前做测试吗互联网运营