React

148 阅读3分钟

一、React概述

1、什么是React

React是一种描述应用程序用户界面的方法,是一种在数据发生变化时随时更改用户界面的机制;

使用React可以避免不必要的DOM操作;

2、常用术语

组件:是React构建用户界面的基本单位;

JSX:JSX(JavaScript XML)是对js语法的扩展;它可以将HTML直接嵌入在js代码中,在js代码中以类似HTML的方式创建React元素。

虚拟DOM:基于React进行开发时,所有的DOM构造都是通过虚拟DOM进行,每当数据变化时;React都会重新构建整个DOM树,并将当前的整个DOM树和上一次的DOM树进行对比;得到DOM结构的区别,然后仅仅将需要变化的部分进行更新。

二、创建React元素

1、安装React

官网下载安装包;下载后进行解压,然后将build文件夹下面的react.js和react-dom.js

两个文件拷贝到指定路径,在操作的HTML文件中引入这两个文件即可。

2、使用JavaScript创建React元素。

(1)createElement(()方法;

语法格式:createElement(type,[props],[children...])   //type:指定要创建的元素类型;

props:指定元素的附加属性;  children:设置创建元素的子元素。

React.createElement('a',{href:'http://www/mingrirusoft.com'},'加优势网")

(2) render()方法

语法格式:render(element,container,[callback])   //element使用createElement()方法创建的React()元素,,container:真实DOM中的HTML元素,[callback]:设置渲染完成或更新后执行的回调函数;

<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
      
</head>
<body>
    <div id="example"></div>
    <script>
        var test = React.createElement('h1',null,'Hello React');
        ReactDOM.render(
            test,document.getElementById('example')
        );
    </script>

3、使用JSX创建React元素

<div id="example"></div>
    <script type="text/babel">
        ReactDOM.render(
        <p>明日学院</p>,
        document.getElementById('example')
        );
    </script>

在JSX的语法中,HTML代码可以直接编写在JavaScript代码中,但是不能加任何引号。

如果变量为数组,则遍历所有数组。

<div id="example"></div>
    <script type="text/babel">
        var arr ={
            <h1>Hello World</h1>
            <h2>Hello JavaScript</h2>
        };
        ReactDOM.render(
            <div>(arr)</div>,
            document.getElementById('example')
        );
    </script>

三、创建组件

1、创建无状态React组件的方法

定义组件使用的是React对象中的createClass()方法。所有的组件在定义后都必须通过render()方法将其渲染到页面中。

<div id="example"></div>
    <script type="text/babel">
        var Message = React.createClass({
            render:function(){
                return<h1>你好{this.props.name}<h1>;
            }
        });
        ReactDOM.render(
            <Message name = "React">
            document.getElementById('example')
        );
    </script>

2、创建有状态React组件的方法

定义组件的初始状态使用的是React对象中的getInitialState()方法。而设置组件的状态使用的是setState()方法。

<div id="example"></div>
    <script type="text/babel">
        var InputState = React.createClass({
            getInitialSate:function(){
                returnv(enable:false);
            },
            handleClick:function(event){
                this.setState({enable:this.state.enable});
            },
            render:function(){
                return (
                <p>
                    <input type="text" disabled = {this.state.enable});>
                    <button onClick={this.handClick}更改输入状态</button>
                </p>
                )
            }
        })
        ReactDOM.render(
            <Message name = "React">
            document.getElementById('example')
        );
    </script>