react-jsx语法细节补充

注释方法

render() {
        return (
            // fragment内部封装的站位符
            <fragment>
                {
                    // 注释方式1--多行注释
                }
                {/*注释方式2--单行注释*/}
           </fragment>

样式命名

将class改为className
因为react会将class认为是一个类 class是个关键词

对html标签进行识别

 {
                        this.state.list.map((item, index) => {
                            return (
                                <li
                                    key={index}
                                    onClick={this.handleInputdele.bind(this, index)}
                                    dangerouslySetInnerHTML={{__html: item}}
                                    //对html的标签不进行转义
                                ></li>
                            )

                        })
                    }

label扩大点击范围

       <div>
                 //htmlFor会区别循环的for 
                 // htmlFor='元素id'
                    <label htmlFor="insertArea">请输入内容</label>
                    <input value={this.state.inputValue} onChange={this.handleInputChange.bind(this)} className="input" id="insertArea"/>
                    <button onClick={this.handleSubmlit.bind(this)}>提交</button>
                </div>

setState的同步异步区别


 - 同步设置

  this.setState({
          list:[...this.state.list,this.state.inputValue],
          inputValue:''
      })

 - 异步设置 es6语法继续优化
 - prevState表示代表修改前的数据状态 就等同于this.state
this.setState((prevState) => ({
            list: [...prevState.list, prevState.inputValue],
            inputValue: ''
}))

propTypes定义props传参的数据类型

defaultProps给props传参变量定义默认值

ref获取dom元素

render() {
        return (
       <fragment>
                <div>
                    <label htmlFor="insertArea">请输入内容</label>
                    <input
                        value={this.state.inputValue}
                        onChange={this.handleInputChange.bind(this)}
                        className="input" id="insertArea"
                        ref={(input)=>{this.input=input}}
                        //ref用来获取元素 
                    />
                 </div>
           </fragment>
        );
    }
     handleInputChange(e) {
        var value=this.input.value
        this.setState({
            // inputValue: e.target.value
            inputValue: value
        })
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值