React简单使用(二)

RN是基于 React设计,了解React有助于我们开发RN应用;
React希望将功能分解化,让开发变得像搭积木一样,快速而且可维护
React主要3个特点如下:
1.作为UI(Just the UI)
2.虚拟DOM(Virtual DOM)
这是亮点 是React最重要的一个特性 放进内存最小更新的视图
差异部分更新 diff算法
3.数据流(Date Flow)单项数据流
 学习React需要掌握哪些知识?
*JSX语法 js+xml
*ES6相关知识
*前端基础 css+div js
举例说明React的用法,IDE工具:WebStorm(JavaScript 开发工具Web前端开发神器 插件丰富)
比如:RN 代码智能提醒
下载模板:https://github.com/wix/reat-templates安装命令npm install react-templates -g
10.下载webstorm破解版: http://down-www.newasp.net/big/webstorm2017.rar
*1.例子一(简单组件和数据传递)
使用this.props只想自己的属性
http://facebook.github.io/react/downloads.html下载react kit
react.js React-dom.js:React的核心文件
jsxtransformer.js browser.min.js:将jsx转译成js和html的工具
可以使用Node.js做预编译,可以安装react-tools工具

npm install -g react-tools

下载:react.js,react-dom.js,browser.min.js放在根目录

示例如下:

<!DOCTYPE html>
<html>
  <head lang="en">
    <meta charset="UTF-8" />
    <title>Hello World</title>
      <script src="react.js"></script>
    <script src="react-dom.js"></script>
    <script src="browser.min.js"></script>
  </head>
  <body>
    <div id="root"></div>
    <script type="text/babel">

/*      ReactDOM.render(
        <h1>Hello, world!addf</h1>,
        document.getElementById('root')
      );*/
//创建一个组件
var HelloMessage=React.createClass(
    {
        render:function () {
            return <h1>Hello {this.props.name}, my name is wangzai</h1>;
        }
    }
);
ReactDOM.render(
        <HelloMessage name="React 语法"/>,
    document.getElementById('root')
);
    </script>
  </body>
</html>

*2.例子二通过(this.state更新视图)

<!DOCTYPE html>
<html lang="en">
<head lang="en">
    <meta charset="UTF-8"/>
    <title>Hello World</title>
    <script type="text/javascript" src="react.js"></script>
    <script type="text/javascript" src="react-dom.js"></script>
    <script type="text/javascript" src="browser.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
    var Timer = React.createClass(
        {
            /**
             *
             初始状态
             * */
            getInitialState: function () {
                return {secondsElapsed: 0};
            },

            tick: function () {
                this.setState({secondsElapsed: this.state.secondsElapsed + 1});
            },
            /**
             * 组装完成装载
             */
            componentDidMount: function () {
                this.interval = setInterval(this.tick, 1000);
            },

            /**
             * 组件将被卸载,清除定时器
             */
            componentWillUnmount: function () {
                clearInterval(this.interval);
            },
            /**
             * 渲染视图
             */
            render: function () {
                return (<div>Seconds Elapsed:{this.state.secondsElapsed}</div>);
            }
        }
    );
    ReactDOM.render(<Timer />,document.getElementById("root"));
</script>
</body>
</html>


*3.例子三(简单应用)

<!DOCTYPE html>
<html lang="en">
<head lang="en">
    <meta charset="UTF-8"/>
    <title>Hello World</title>
    <script src="react.js"></script>
    <script src="react-dom.js"></script>
    <script type="text/javascript" src="browser.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
    var ShowEditor=React.createClass(
        {
            getInitialState:function () {
              return {value:'请输入文字'};
            },
            handleChange:function (event) {
                this.setState({value: event.target.value});
            },
            render:function () {
                return(
              <div>
                  <h3>输入</h3>
                  <textarea style={{width:300,height:300,outline:'none'}}
                    onChange={this.handleChange}
                   ref="textarea"
                   defaultValue={this.state.value}
                  />
                  <h3>输出</h3>
                  <div>{this.state.value}</div>
              </div>
                );
            }
        }
    );
    ReactDOM.render(<ShowEditor />,document.getElementById("roots"));
</script>
</body></html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值