react学习-表单处理(四)

使用React处理表单元素,一般有俩种方式:

  1. 受控组件 (推荐使用)
  2. 非受控组件

1. 受控表单组件

实现步骤

以获取文本框的值为例,受控组件的使用步骤如下:

  1. 在组件的 state 中声明一个组件的状态数据
  2. 将状态数据设置为 input 标签元素的 value 属性的值
  3. 为 input 添加 change 事件,在事件处理程序中,通过事件对象 e 获取到当前文本框的值(即用户当前输入的值
  4. 调用 setState 方法,将文本框的值作为 state 状态的最新值

代码:

import React from "react"

class Test extends React.Component {
  state = {
    message: 'this is message'
  }

  inputChange = (e) => {
    this.setState({
      message: e.target.value
    })
  }

  render () {
    return (
      
    )
  }
}

function App () {
  return (
    
) } export default App

类似 v-model 底层写法

2. 非受控表单组件

实现步骤

  1. 导入 createRef 函数
  2. 调用 createRef 函数,创建一个 ref 对象,存储到名为 msgRef 的实例属性中
  3. 为 input 添加 ref 属性,值为 msgRef
  4. 在按钮的事件处理程序中,通过 msgRef.current 即可拿到 input 对应的 dom 元素,而其中 msgRef.current.value 拿到的就是文本 框的值

代码:

import React, { createRef } from "react"

class Test extends React.Component {

  msgRef = createRef()

  getValue = () => {
    console.log(this.msgRef.current.value)
  }

  render () {
    return (
      <>
        
        
      
    )
  }
}

function App () {
  return (
    
) } export default App
最后修改:2023 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏