• 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方法中如果要返回多个元素,需要一个顶层标签,否则是会报错的。

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

  • 相关阅读:
    [引]ASP.NET MVC 4 Content Map
    [转]ASP.NET MVC 2: Model Validation
    [转]ASP.NET MVC中你必须知道的13个扩展点
    [转]Best way to sort a DropDownList in MVC3 / Razor using helper method
    [转]Sql Server参数化查询之where in和like实现详解
    [转]Oracle Stored Procedures Hello World Examples
    [转]oracle的ANYDATA数据类型
    重构中对设计模式的反思
    poj2186 Popular Cows --- 强连通
    mac下通过xcodebuild使用oclint
  • 原文地址:https://www.cnblogs.com/copper6/p/6780470.html
Copyright © 2020-2023  润新知