美文网首页
初识React

初识React

作者: 戊戌水瓶 | 来源:发表于2021-03-03 16:36 被阅读0次

    React起源于Facebook的内部项目,该公司积极尝试引入HTML5技术用来架设Instagram网站,开发中发现HTML5的性能下降明显,达不到预期的效果。他们就自己开发了React框架。

    React中文官方地址:https://reactjs.bootcss.com/docs/getting-started.html

    1、JSX即Javascript XML,它使用XML标记来创建虚拟DOM和声明组件。

    const element = (

        <div>

            <h1>Hello!</h1>

            <h2>Good to see you here.</h2>

        </div>

    );

    2、数组的输出方法   map((参数名) =>{})

    function NumberList(props) {

        const numbers = props.numbers;

        return (

            <ul>{numbers.map((number) =>

                <ListItem key={number.toString()} value={number} />

            )}</ul>

        );

    }

    3、props和state

    props:组件的参数、只可以读取,不可修改

    state:初始化的constructor方法里可以直接给state赋初始值

                    eg:this.state={date:newDate()};

                只能通过setState()方法来修改state;state的修改是异步的;分别调用 setState() 来单独地更新它们:

    4、事件的处理

            // 为了在回调中使用 `this`,这个绑定是必不可少的

            this.handleClick=this.handleClick.bind(this);

    5、生命周期

        实例化阶段

            componentWillMount() 组件将要挂载到页面

            render()     组件挂载中

            componentDidMount()  组件挂载完成

        组件更新:

            componentWillUpdate(object nextProps, object nextState)

            componentDidUpdate(object prevProps, object prevState)

        组件销毁     componentWillUnmount()

    6、组件传值

        父组件向子组件传值直接用props

        子组件向父组件可以通过方法来传值,示例如下

    父组件:

    <TemperatureInput scale="c" temperature={celsius} onTemperatureChange={this.handleCelsiusChange} />

    handleCelsiusChange(temperature) {       

        console.log('handleCelsiusChange' + temperature);       

        this.setState({ scale: 'c', temperature }); 

    子组件

    handleChange(event) {        

        console.log('etv' + event.target.value);        

        this.props.onTemperatureChange(event.target.value)    

    }    

    render() {        

        const temperature = this.props.temperature;        

        const scale = this.props.scale;        

        return (            

            <fieldset>               

             <legend>Enter temperature in {scaleNames[scale]}:</legend>                

            <input value={temperature} onChange={this.handleChange} />            

            </fieldset>       

         )    

    }

    相关文章

      网友评论

          本文标题:初识React

          本文链接:https://www.haomeiwen.com/subject/zynqqltx.html