zoukankan      html  css  js  c++  java
  • React.js自学第一天

    一、what:一个为数据提供渲染的HTML视图开源的js库。

    二、why:遇到的问题:①大量的DOM操作=>虚拟DOM算法,实现DOM的自动操作。

                                    ②逻辑非常复杂=>state与内容对应起来。

    三、推出理念:Learn once ,Write anywhere。

    四、React特点:①声明式的设计:采用声明范式,可以轻松描述应用。

                          ②高效:虚拟DOM算法 最大限度减少与DOM的交互。

                          ③灵活:方便的搭配其他框架来使用。

                          ④jsx 是js语法的扩展。

                          ⑤组件:构建组件,方便复用。

    五、废话太多了,直接上我们的Hello React了。

                       

                        ①三个js文件必须按顺序引入,否则会报错

                        ②找一下还有什么不一样的地方 “type=text/babel”这又是什么鬼?其实是等价于type=text/jsx,jsx又是什么鬼?jsx是js语法的扩展,不是一门新的语言!

                        ③通过React的基本方法,ReactDOM.render(参数1,参数2),将参数1渲染到参数2中,并插入到指定的DOM节点中!

    六、jsx的语法:①遇到HTML标签(<),就使用HTML来解析;

                         ②遇到代码块({}),就会使用js来解析;

    七、创建组件:

                      画个图分析一下

                         

    这个代码有点长了,我就直接copy过来了                      

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="javascripts/react.js"></script>
    <script src="javascripts/react-dom.js"></script>
    <script src="javascripts/browser.min.js"></script>
    </head>
    <body>
    <div id="example"></div>
    <script type="text/babel">
    var UserName = React.createClass({
    render:function () {
    return <b>username</b>
    }
    })
    var InputName = React.createClass({
    render:function () {
    return <input placeholder="place input username"/>
    }
    })
    var PassWorld = React.createClass({
    render:function () {
    return <b>passwrold</b>
    }
    })
    var InputPass = React.createClass({
    render:function () {
    return <input placeholder="place input passwrold"/>
    }
    })
    var UpButton = React.createClass({
    render:function () {
    return <button>Signup</button>
    }
    })
    var InButton = React.createClass({
    render:function () {
    return <button>Signin</button>
    }
    })
    ReactDOM.render(
    <div>
    <UserName/>
    <InputName/>
    <br/>
    <PassWorld/>
    <InputPass/>
    <br/>
    <UpButton/>
    <InButton/>
    </div>,
    document.getElementById('example')
    )
    </script>
    </body>
    </html>

     注意:①组件的首字母 必须是大写的。(React中是根据标签的首字母判断是原生的HTML标签还是自定义的组件)

             ②在创建组件的时候,render方法中如果要返回多个元素,需要一个顶层标签,否则是会报错的。

    今天就先到这里吧,菜鸟一个希望大家多多指教,明天有空的话优化这个组件!

  • 相关阅读:
    Netty回调与Channel执行流程分析
    Netty执行流程分析与重要组件介绍
    HBase 介绍
    Java文件上传下载原理
    ngxtop安装和使用
    开启Nginx监控 with-http_stub_status_module
    Spring 事务模板方法设计模式
    Spring 事务管理
    JdkDynamicAopProxy 拦截器链的获得与递归执行
    CgLib实现AOP
  • 原文地址:https://www.cnblogs.com/copper6/p/6780470.html
Copyright © 2011-2022 走看看