• React


    事件对象: 

    import React,{Component} from 'react'
    
    class Index extends Component{
        constructor(props){
            super(props)
            this.state = {
                msg:'张学友'
            }
        }
        getMsg=(event)=>{
            alert(this.state.msg);
        event.target.value;//获取值
        let val = this.refs.username.value //根据ref获值
        console.log(event.target); //获取当前Dom节点 event.target.style.background = 'red' ; //改变当前Dom的背景色
           console.log(event.target.getAttribute('aid')); //获取当前Dom属性 } setMsg=()=>{ this.setState({ msg:'刘德华' }) } render(){ return( <div> {this.state.msg} <button ref="username" aid='1111' onClick={this.getMsg}>点击获值</button> <br /> <button onClick={this.setMsg}>改变值</button> </div> ) } } export default Index

     2.父子组件传值

      父组件可以传属性 方法给子组件,还可以本整个父组件传给子组件

      父组件代码:

      

    setv=(result)=>{
            this.setState({
                msg:result
                
            })
            alert(result)
        }
        render(){
            return(
                <div>
                    {this.state.msg}
                    <button aid='1111' onClick={this.getMsg}>点击获值</button>
                    <br />
                    <button onClick={this.setMsg}>改变值</button>
                    <br />
                    <hr></hr>
                    <Son title='父组件定义的标题' setv={this.setv} news={this} />
                </div>
            )
        }
    

      子组件代码

    render(){
            return(
                <div>
                    <p>{this.state.title}</p>
                    <button onClick={this.props.news.setv.bind(this,'这是子组件传过来的')}>给父组件传值</button>
                    <button onClick={this.props.news.getRun}>执行父组件的方法</button>
                </div>
            )
        }
    

      父组件获取子组件的值

     getSonTitle=()=>{
            alert(this.refs.son.state.title);
        }
        render(){
            return(
                <div>
                    {this.state.msg}
                    <button aid='1111' onClick={this.getMsg}>点击获值</button>
                    <br />
                    <button onClick={this.setMsg} >改变值</button>
                    <br />
                    <hr></hr>
                    <Son title='父组件定义的标题' setv={this.setv} news={this} ref='son' />
                    <br />
                    <hr></hr>
                   
                    <button onClick={this.getSonTitle}>获取子组件的值</button>
                </div>
            )
        }
    

      4.默认属性

      
    Son.defaultProps={
        title:'默认标题'
    }
    //验证传值的类型
    import PropTypes from 'prop-types'
    Son.propTypes={
        title:PropTypes.string
    }
    

      

  • 相关阅读:
    eclipse的maven,添加依赖后无法自动下载相应的jar包
    eclipse一直不停building workplace
    数据结构-线性表(顺序存储)插入和删除节点的平均移动次数计算
    Git常用命令
    迷你商城后台管理系统————stage3项目部署测试汇总
    迷你商城后台管理系统————stage2核心代码实现
    迷你商城后台管理系统————stage1需求分析
    如何做需求分析?
    Linux中(Ubuntu18.04.x/CentOS)mysql8.0.x安装/配置/部署/启动
    在LINUX(Ubuntu 18.04.x、CentOS)下配置MySQL8.0.x
  • 原文地址:https://www.cnblogs.com/finnlee/p/12550884.html
Copyright © 2020-2023  润新知