React全家桶详细讲解-图文并茂

  • React将state与表单元素值value绑定在一起,有state的值来控制表单元素的值

  • 受控组件:值受到react控制的表单元素

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

使用步骤


  • 在state中添加一个状态,作为表单元素的value值

  • 给表单元素绑定change事件,将表单元素的值设置为state的值

示例:

class App extends React.Component {

constructor(){

super()

this.inputChange = this.inputChange.bind(this)

}

state = {

txt : ‘’

}

inputChange(e){

this.setState({

txt: e.target.value

})

}

render(){

return (

{/* 把state的值设置给输入框的value,绑定change事件,这样用户在输入内容的时

候调用相应函数,在函数里面把当前设置的值赋值给state,从而达到数据的统一 */}

<input type=“text” value={this.state.txt} onChange=

{this.inputChange}/>

)

}

}

ReactDOM.render(,document.getElementById(‘root’))

多表单元素优化


  • 问题:每个表单元素都有一个单独的事件处理函数,这样太繁琐

  • 优化:使用一个事件处理程序同时处理多个表单元素

步骤

  • 给表单元素添加name属性(用来区分是哪一个表单),名称与state相同(用来更新数据的)

  • 根据表单内容来获取对应值

  • 在change事件处理程序中通过 [name] 来修改对应的state

示例:

inputChange(e){

let target = e.target;

let value = target.type == ‘checkbox’ ? target.checked : target.value;

this.setState({

})

}

<input type=“text” value={this.state.txt} name=“txt” onChange=

{this.inputChange}/>

<input type=“checkbox” value={this.state.isChecked} name=“isChecked” onChange=

{this.inputChange}/>

非受控组件


  • 说明:借助于ref,使用元素DOM方式获取表单元素值

  • ref的作用:获取DOM或者组件

使用步骤

  • 调用 React.createRef() 方法创建ref对象

  • 将创建好的 ref 对象添加到文本框中

  • 通过ref对象获取到文本框的值

class App extends React.Component {

constructor(){

super()

//创建 ref

this.txtRef = React.createRef()

}

// 获取文本框的值

getTxt =() => {

console.log(this.txtRef.current.value)

}

render(){

return (

获取值

)

}

}

二、React-组件综合案例

===========================================================================

需求分析


  • 渲染评论列表(列表渲染)

  • 没有评论数据时渲染:暂无评论(条件渲染)

  • 获取评论信息,包括评论人和评论内容(受控组件)

发表评论,更新评论列表( setState() )

在这里插入图片描述

搭建任务的模板


  • html

<!doctype html>

React App
    • xxxxx

      删除

    • yyyy

      删除

      已完成0 / 全部2

      清除已完成任务

      • css

      /base/

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值