react学习--1

首先万事皆有源,react的github地址附上:https://github.com/facebook/react
其次,推荐个写的不错的react学习博客http://www.ruanyifeng.com/blog/2015/03/react.html
看完这些之后。可以再来看本人学习的过程,本人也是在看了上面的博客然后结合官网的例子,继续学习的。

推荐几个react必备网址:


接下来正式继续学习…

本DEMO实例主要熟悉下react的生命周期
主要的生命周期可以参考https://segmentfault.com/a/1190000004168886
首先是本教程demo中所有的html页面,都是一样的代码,如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <script src="../build/react.js"></script>
    <script src="../build/react-dom.js"></script>
    <script src="../build/browser.min.js"></script>
    <script src="index.js" type="text/babel"></script>
  </head>
  <body>
    <div id="example"></div>
  </body>
</html>

js代码如下:

var count =0;
var HeloChild = React.createClass({
    //先申明 才能使用
    render : function(){
        //属性改变调用render
        return(<a>{this.props.childProps}</a>);
    }
});

var HelloMessage = React.createClass({
    getDefaultProps :function(){
        console.log("getDefaultProps");
        //在create的时候就创建如果后面有直接赋值的属性就会覆盖此处
        //所有实例共用此属性
        return {title : 'Hello World tqy'};
    },
    getInitialState : function(){
        //每个实例调用一次
        count++;
        console.log("getInitialState");
        console.log(count);
        return {mystate:"mystate",
            childProps:"childProps"
        };
    },
    render: function() {
        //状态改变调用render
        return (<div><h1 onClick={this.callback}>Hello {this.props.name+this.props.title }{ this.state.mystate+"\n"}</h1>
                <HeloChild childProps={this.state.childProps}></HeloChild>
            </div>
        );
    },
    //函数的两种写法
    componentDidMount(){
        console.log("componentDidMount");
    },
    callback : function(event){
        console.log("click");
        this.setState({mystate: "mystateCCCCCCC",childProps:"childProps22"});
    }

});
ReactDOM.render(
    //组件&组件之间不能嵌套
    <div><HelloMessage name="aaa" title="bbbb"/><HelloMessage></HelloMessage></div>,
    document.getElementById('example')
);

在浏览器中访问控制台结果如下:
控制台结果1
可以看到,getDefaultProps方法只会调用一次,并且是在createclass的时候就调用;而getInitialState方法会在每个实例创建的时候,都调用一次。componentDidMount方法也打印了两次。
详细页面如下:
详细页面
其余生命周期的方法,也都大同小异,大家可以自行实践。
如果最后的方法变成:

ReactDOM.render(
    //组件组件之间不能嵌套
    <div><HelloMessage><HelloMessage name="aaa" title="bbbb"/></HelloMessage></div>,
    document.getElementById('example')
);

则效果如下
错误效果1
可见,嵌套的只显示最外层的HelloMessage。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值