React组件

使用函数创建组件:

函数组件:使用JS函数(箭头函数)创建的组件。

约定1:函数名称必须以大写字母开头。

约定2:函数组件必须有返回值,表示该组件的结构。

例:function Hello {

        return(

                <div>这是我第一个函数组件</div>

        }

}

渲染函数组件的方法:

React DOM.render(<Hello/>,document.getElementById('root'));

使用类创建组件:

类组件:使用es6的class创建组件。

约定1:类的名称也必须大写。

约定2:类组件应该继承React.Component父类,从而可以使用父类重负提供的方法和属性。

约定3:类组件必须提供render()方法。

约定4:render方法必须提供返回值,表示该组件的结构与。

class Hello extends React.Component{

        render(){

                return <div>Hello Class Component</div>

        }

}

将组件抽离为独立的js文件:

1.创建一个hello.js文件。

2.在hello.js文件导入React。

3.创建组件。

4.在Hello.js中导出该组件。

5.在index.js文件中导入Hello组件。

事件绑定:语法:on+Click={......} 比如onClick={}

class App extends React.Component{

        handleClick(){

                console.log('单击事件触发')

        }

        render(){

                 <button onClick={this.handleClick}>点击</button>

        }

}

函数组件事件绑定:

function App(){

        function handleClick(){

                console.log('单击事件触发了’)

        }

        return (

                <button onClick={handleClick}>点我</button>

        }

}

事件对象:可能通过事件处理程序的参数获取到事件对象

React中事件对象叫做:合成事件。 合成事件:兼容所有浏览器,无需但跨浏览器的兼容问题。

handleClick(e){

        e.preventDefault()

        console.log('阻止跳转')

}

组件中的state和setState:

class hello extends React.Component{

        constructor(){

                super()

                this.state={

                        count:0

                }

       }

        render(){

                return (

                        <div>有状态的组件</div>

                }

        }

}

将事件处理函数抽离出来,this的指向问题:

解决方法1:箭头函数无this

 <button onClick={()=>{

        this.setState({

                count:this.state.count+1

        })

}>+1</button>

解决方法2:绑定this

constructor(){

        super();        

        this.onIncrement = this.onIncrement.bind(this)

}

解决方法3:

class Count extends React.Component{

        onIncreament=()=>{

                this.setState({..})

        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值