react使用

创建组件的三种方法

	// 函数创建的组件
	function component(){
		return (
			<div>组件1</div>
		)
	}
	// 没有 关于 this 的操作 不需要加载对象 性能高
	// es5 创建
	let component = React.createClass({
	  	defaultProps: { //组件默认的props对象
        	initialValue: ''
	    },
	    // 设置 initial state
	    getInitialState: function() {//组件相关的状态对象
	        return {
	            text: this.props.initialValue || 'placeholder'
	        };
	    },
	    render(){
	    	return(
				<div>{}</div>
			)
		}
	})
	// this的指向就是自己 可以直接使用this 可以使用mixins 
	// es6 创建
	class component extends React.component{
		constructor(props){
			super(props);
			this.state = {
				text:"组件"
			}
		}
		,
	    render(){
	    	return(
				<div>{this.state.text}</div>
			)
		}
	}
	// 因为是class 所以this的指向 要使用 bind(this)来修改this指向 或者在行内使用箭头函数
	// 还不能使用mixins

把创建的组件挂载到dom上面

	<div id="app"></div>
	ReactDOM.render(component,document.getElementById('app'))

refs 的使用

	  class One extends React.Component {
            render() {
                return (
                    <div>
                        <div>one</div>
                    </div>
                )
            }
        }
        class Two extends React.Component {
            constructor(props){
                super(props);
                this.state = {

                }
            }
            componentDidMount(){
                console.log(this.refs)
            }
            render() {
                return (
                    <div>
                        <One ref="one"></One>
                        <div ref="two">two</div>
                    </div>
                )
            }
        }

在这里插入图片描述

React.createRef()

 class One extends React.Component {
            constructor(props){
                super(props);
                this.content = React.createRef()
            }
            componentDidMount(){
                console.log(this.content)
            }
            render() {
                return (
                    <div>
                        <div ref={ele => this.content = ele}>one</div>
                    </div>
                )
            }
        }

在这里插入图片描述
React.forwardRef 可以获取到组件内的某个元素 主要是因为他可以多带一个参数ref

     const FocusInput = React.forwardRef((props, ref) => {
            return <input type="text" ref={ref} />
        });
     class Component1 class React.Component{
     		constructor(props){
				super(props);
				this.input = React.createRef()
			}
			 componentDidMount(){
                console.log(this.input)
                this.input.current.focus()
            }
			render() {
                return (
                    <div>
           				<FocusInput ref={this.input} />
                    </div>
                )
            }
	 }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值