美文网首页React专项
react入门教程一

react入门教程一

作者: 彬哥头发多 | 来源:发表于2016-11-23 19:29 被阅读242次

    react入门

    一、react是什么?

    ​ 还是直接上原话吧

    ​ A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES

    ​ 翻译成人话,react是用来构建前端界面的,稍微专业一点,澄清一个可能被大家误解的概念,react不是mvc框架,

    而是构建mvc里面view这部分的库,至于其他部分采用什么技术react并不限制。

    ​ 一句话,react就是构建用户界面的。

    二、为啥用它

    ​ 1.因为它火,学它能找好工作涨工资

    ​ 2.那么为啥它火?因为他牛逼,为啥牛逼,我们下面就说。

    三、怎么用?

    ​ 既然说了它牛逼,那么我们就从三个部分去说说。

    1.react初探

    ​ 涉及到简单的基础知识,比如安装,配置,基础知识和简要的小例子

    2.react实际应用

    ​ 实际上线react应该如何做,比如使用可以构建版本的react,模块化,和压缩等。

    3.react 本地应用

    ​ 我们研究下看看react如何实习它说的用js写原生应用。

    四、正式开始

    1.react 基础知识

    ​ 官网:http://reactjs.cn/ (这个知识更新很慢,适合入门)

    ​ 推荐:https://facebook.github.io/react/(适合开发)

    ​ 我们开始第一个例子,老规矩hello world

        
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8" />
        <title>Hello World</title>
        <script src="js/react.js"></script>
        <script src="js/react-dom.js"></script>
        <script src="js/babel.min.js"></script>
      </head>
      <body>
        <div id="root"></div>
        <script type="text/babel">
          ReactDOM.render(
            <h1>Hello, world!</h1>,
            document.getElementById('root')
          );
        </script>
      </body>
    </html>
    

    说明:

    ​ 1.react 运行需要三个库,而且这三个文件顺序不能变。

    ​ 2.例子中那一坨不像js也不像html得恶心玩意是啥?这个是FB(facebook)自己搞的JSX语法,相当的简单,只要注意几点就行。

    ​ a).<script type="text/babel"> 这里类型是babel,babel是什么?把ES6-ES5的工具,这里先知道就好,我们在实际应用中,详细解释。

    ​ b).ReactDOM.render(标签,把前面的标签放到哪里)

    ​ c).React 需要确保一个组件只能有一个根节点

    ​ 3.事件和其他

    ​ 这里我把事件和其它注意事项从2里面单拎出来,因为太重要而且容易犯错

          ReactDOM.render(
            <input type = "button" value ="按钮" onClick ={show} />,
            document.getElementById('root')  
          );
    

    ​ 注意事项:

    ​ 1.单标签闭合

    ​ 2.事件写法 onclick,onDoubleClick 驼峰命名法

    ​ 3.函数用 {show} 注意外面不加引号,里面


    ​ 第二个例子,点击计数

    var count = 0;
    function fnCLick(){
        count++;
        ReactDOM.render(
            <div>
                <input type = "button" value ="按钮" onClick ={fnCLick} />
                <br/>
                总共点击了{count}次
            </div>,
            document.getElementById('root')  
        );
    }
    fnCLick();
    

    2.react 类

    ​ 第三个例子,react是基于状态,时钟,热身

            function tick(){
               var oDate = new Date();
                ReactDOM.render(
                    <div>
                        {oDate.getHours()}:{oDate.getMinutes()}:{oDate.getSeconds()}
                    </div>,
                    document.getElementById('root')  
                );
            }
            setInterval(tick);
    

    开始正式的例子

            var B = React.createClass({
                a:12,
                b:5,
                getInitialState:function(){return {count:0}},
                render:function () {
                   return (
                           <h2>{parseInt(this.props.c)+parseInt(this.props.d)}</h2>
                   );
                }
    
            });
    
            ReactDOM.render(
                    <B c ="3" d="8"/>,
                    document.getElementById('root')
            );
    

    注意几点·

    ​ 1.类不是必须的,但是最好用类,因为组件化。

    ​ 2.render的返回值的括号可以去掉,但是fb说了,最好加上,看着好看。

    ​ 3.react中的类不用实例化。

    3.react数据交互

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8" />
        <title>Hello World</title>
        <script src="js/react.js"></script>
        <script src="js/react-dom.js"></script>
        <script src="js/babel.min.js"></script>
        <script src="js/ajax.js"></script>
        <script type="text/babel">
    
            var A = React.createClass({
    
                getInitialState:function(){
                    return {status:'等待登录'}
                },
                render:function(){
                    return (
                        <div>
                            用户:<input type="text" id="txt1" /><br/>
                            密码:<input type="password" id="txt2" /><br/>
                            <span style={{color:'red'}}>{this.state.status}</span><br/>
                            <input type="button" value="注册" onClick={this.reg}/>
                            <input type="button" value="登录" onClick = {this.login}/>
                        </div>
                    );
                },
                reg:function(){
                    var _this = this;
                    var oT=document.getElementById('txt1');
                    var oT2=document.getElementById('txt2');
                    ajax({
                        url:'user.php',
                        data:{
                           act:'add',
                           user:oT.value,
                           pass:oT2.value
                        },
                        success:function(str){
                            var json = eval('('+str+')');
                            _this.setState({status:json.desc});
                            
                        }
                    });     
                },
                login:function(){
                    //登录一样就不写了
                }
            });
    
            ReactDOM.render(
                <A />,
                document.getElementById('root')
            );
    
        </script>
    </head>
    
    <body>
        <div id="root"></div>
    
    </body>
    </html>
    

    react只是展示层的东西,跟你用什么数据层没关系,你可以像我一样自己写原生ajax,也可以用jquery或者angular做数据交互。

    到此为止,我们基本的angular入门就够用了,但是离实际项目上线还差很远,下面我们说一下实际项目中怎么更精细的使用react和一些全新的技术。

    相关文章

      网友评论

        本文标题:react入门教程一

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