• react-jsx语法


    react - jsx 语法之双向绑定的单选框实现

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <script src="../lib/react.js"></script>
        <script src="../lib/react-dom.js"></script>
        <script src="../lib/babel.min.js"></script>
        <title>react - 事件</title>
    </head>
    <body>
    
        <div id="app">
            
        </div>
    
        <script type="text/babel">
    
            class Radiobox extends React.Component{
                constructor(){
                    super()
                    this.state={
                        radioval:""
                    }
    
                    // 事件性能优化
                    this.handleRadio = this.handleRadio.bind(this)
                }
                render(){
                    let radioval = this.state.radioval
                    return (
                        <div className="radioBox">
                            <label htmlFor="sex"></label>
                            <input type="radio" value="boy" checked={radioval === "boy"} onChange={this.handleRadio.bind(this)}/>男<br/>
                            <input type="radio" value="girl" checked={radioval === "girl"} onChange={this.handleRadio.bind(this)}/>女<br/>
                            <p>您选择的性别是:{radioval}</p>
                            </div>
                    )
                }
                handleRadio(e){
                    console.log("选择性别是: ",e.target.value)
                    this.setState({
                        radioval: e.target.value
                    })
                }
            }
    
            ReactDOM.render(
                <Radiobox/>,
                document.getElementById('app')
            )
        </script>
    
    
    
    </body>
    </html>

    React - jsx 之 复选框实现

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <script src="../lib/react.js"></script>
        <script src="../lib/react-dom.js"></script>
        <script src="../lib/babel.min.js"></script>
        <title>react - 复选框</title>
    </head>
    <body>
    
        <div id="app"></div>
    
        <script type="text/babel">
            class Radiobox extends React.Component{
                constructor(){
                    super()
                    this.state={
                        hobbies: []
                    }
    
                    // 事件性能优化this.handleCkeckedBox = this.handleCkeckedBox.bind(this)
                }
                render(){
                    let {radioval,hobbies} = this.state
                    return (
                        <div className="radioBox">
                            <p className="hobby"></p>
                            <label htmlFor=""><input type="checkbox" value="抽烟"  onChange={this.handleCkeckedBox}/>抽烟</label>
                            <label htmlFor=""><input type="checkbox" value="喝酒"  onChange={this.handleCkeckedBox}/>喝酒</label>
                            <label htmlFor=""><input type="checkbox" value="上网"  onChange={this.handleCkeckedBox}/>上网</label>
                            <label htmlFor=""><input type="checkbox" value="睡觉"  onChange={this.handleCkeckedBox}/>睡觉</label>
                            <ul className="box">
                                <p>你的爱好有 : </p>
                                {
                                    hobbies.map((ele)=>{
                                        return (
                                            <li className="hoibby" key={ele}>{ele}</li>
                                        )
                                    })
                                }  
                            </ul>
                        </div>
                    )
                }
    
                handleCkeckedBox(e){
                    let val = e.target.value
                    let arr =  this.state.hobbies
                    let flag = arr.includes(val)
                    if(flag){
                        let index = arr.indexOf(val)
                        arr.splice(index,1) 
                    }else{
                        arr.push(val)
                    }
                    this.setState({
                            hobbies:arr
                        })
                }
            }
    
            ReactDOM.render(
                <Radiobox/>,
                document.getElementById('app')
            )
        </script>
    </body>
    </html>

    React - jsx 之 下拉框实现

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <script src="../lib/react.js"></script>
        <script src="../lib/react-dom.js"></script>
        <script src="../lib/babel.min.js"></script>
        <title>react - jsx 下拉框</title>
    </head>
    <body>
    
        <div id="app"></div>
    
        <script type="text/babel">
            class Radiobox extends React.Component{
                constructor(){
                    super()
                    this.state={
                        selectVal: ""
                    }
    
                    // 事件性能优化
                    this.handleSelected = this.handleSelected.bind(this)
                }
                render(){
                    let {selectVal} = this.state
                    return (
                        <div className="radioBox">
                            <p>选中的是 :{selectVal} </p>
                            <select name="" id="" value={selectVal} onChange={this.handleSelected}>
                                <option value="苹果">苹果</option>
                                <option value="香蕉">香蕉</option>
                                <option value="橘子">橘子</option>
                                <option value="梨子">梨子</option>
                                <option value="杏子">杏子</option>
                            </select>
                        </div>
                    )
                }
    
    
                handleSelected(e){
                    let val = e.target.value
                    this.setState({
                        selectVal:val
                    })
                }
            }
    
            ReactDOM.render(
                <Radiobox/>,
                document.getElementById('app')
            )
        </script>
    
    </body>
    </html>
  • 相关阅读:
    6大集合类
    数据导出到Excel/Word 防止出现乱码仅有一行数据导出的时候
    bootmgr is compressed 解决办法 汇总
    RAID 独立磁盘真阵列
    C# 和 Js 取出时间间隔
    Image 获取缩略图
    ConvertJSONDateToJSDateObject 方法实现json格式时间串转换为 对应的时间格式串
    纯js脚本的模式对话框
    癌症的IARC分级
    微信小程序如何在页面间传值
  • 原文地址:https://www.cnblogs.com/rose-sharon/p/11712772.html
Copyright © 2020-2023  润新知