跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

React 基础:JSX 语法细节与表单组件实战

React 基础实战涵盖 JSX 特殊语法、内联样式及表单状态管理。通过类组件示例展示 htmlFor 属性替代、注释写法及 handleChange 事件处理逻辑。内容涉及表格列渲染配置与完整表单提交流程,适合初学者掌握 React 核心交互模式。

战神发布于 2018/10/12更新于 2026/10/2587 浏览
React 基础:JSX 语法细节与表单组件实战

React 基础:JSX 语法细节与表单组件实战

在 React 开发中,有几个常见的语法细节容易踩坑。比如 HTML 标签中的 for 属性在 JSX 里不能直接使用,需要改为 htmlFor。此外,JSX 中的注释写法也有特定规范。

JSX 语法注意事项

  1. 属性命名:for 需写成 htmlFor。
  2. 注释方式:使用 {/* 注释内容 */}。

内联样式与表格渲染

在表格列渲染中,经常需要动态设置样式。例如:

{
  dataIndex: 'auditPeople',
  width: "10%",
  render: function(text, record) {
    return text ? text : <p style={{ color: 'red' }}>未审核</p>;
  }
}

表单状态管理实战

下面是一个完整的类组件示例,展示了如何管理表单状态和处理提交事件。注意 handleChange 的统一写法以及 this.setState 的使用。

const MyForm = React.createClass({
  getInitialState() {
    return {
      username: "",
      gender: "man",
      checked: true
    };
  },

  handleChange(event) {
    const newState = {};
    // 根据输入框名称更新对应状态
    newState[event.target.name] = event.target.name === "checked"
      ? event.target.checked
      : event.target.value;
    
    this.setState(newState);
    console.log(newState);
  },

  submitHandler(e) {
    e.preventDefault();
    const is = this.state.checked ? '是' : '不是';
    const gender = this.state.gender === 'man' ? '帅哥' : '美女';
    alert(this.state.username + is + gender + '.');
  },

  render() {
    return (
      <form onSubmit={this.submitHandler}>
        <label htmlFor="username">请输入姓名</label>
        <input 
          type="text" 
          name="username" 
          onChange={this.handleChange} 
          value={this.state.username} 
          id="username" 
        />
        <br/>
        
        <label htmlFor="checkbox">是与否</label>
        <input 
          type="checkbox" 
          value="是否" 
          name="checked" 
          id="checkbox" 
          onChange={this.handleChange} 
          checked={this.state.checked} 
        />
        <br />
        
        <label htmlFor="gender">请选择</label>
        <select 
          name="gender" 
          onChange={this.handleChange} 
          value={this.state.gender}
        >
          <option value="man">帅哥</option>
          <option value="woman">美女</option>
        </select>
        <br />
        
        <button type="submit">提交</button>
      </form>
    );
  }
});

ReactDOM.render(<MyForm />, document.getElementById("reactContainer"));

这段代码涵盖了 React 类组件的核心流程:初始化状态、事件绑定、条件渲染以及 DOM 操作。在实际项目中,建议结合现代 Hooks 语法进行重构,但理解类组件的逻辑对掌握 React 原理依然很有帮助。

目录

  1. React 基础:JSX 语法细节与表单组件实战
  2. JSX 语法注意事项
  3. 内联样式与表格渲染
  4. 表单状态管理实战

更多推荐文章

查看全部
  • C++ 继承进阶:友元、静态成员与菱形继承底层逻辑
  • C++ string 类常用成员函数与全局函数详解
  • AI 影响最大的职业 Top10 分析:程序员与 IT 支持为何居首
  • 本地大模型部署:从入门到弃坑的现实复盘
  • OpenClaw 101:本地优先的 AI 智能体部署与实战指南
  • 双指针算法技巧全场景拆解:从数组操作到环检测
  • 前端现代化演进:从 jQuery 到微前端与工程化实践
  • 贪心算法实战:三道经典 LeetCode 题解
  • 利用 AI 快速掌握 XP.1024 新版本特性
  • DeepSeek-R1-Distill-Llama-8B 本地部署与性能调优实战
  • 无需微调仅靠 Prompt 实现 LLM 持续学习新范式 CLOB 框架解析
  • STL 二分查找 lower_bound 与 upper_bound 详解
  • ibbot 智体机灵 AI 搜索智能体 ai_search_agent 上线及架构解析
  • Python AI 实战:从线性回归到 MNIST 图像分类
  • 奈飞工厂算法挑战赛指南
  • Vitis AI FPGA 部署实战:从模型量化到板端推理全流程
  • Android 大厂面试核心考点与问题汇总
  • 开源万亿模型 Ring-2.5-1T 深度评测:架构解析与工程实践
  • LlamaFactory 多模态大模型微调实战指南
  • OpenClaw Web Search 配置与渠道选择指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online