zoukankan      html  css  js  c++  java
  • 初级React入门

    一、引入Reactjs

    方法一:直接下载相关js文件引入网页,其中react.js 是 React 的核心库,react-dom.js 是提供与 DOM 相关的功能,Browser.js 的作用是将 JSX 语法转为 JavaScript 语法,这一步很消耗时间,实际上线的时候,应该将它放到服务器完成。

    <script src="../build/react.js"></script>
    <script src="../build/react-dom.js"></script>
    <script src="../build/browser.min.js"></script>

    方法二:通过前端架构工具,比如 browserify 或 webpack。使用 react和 react-dom npm 包.

    var React = require('react');
    var ReactDOM = require('react-dom');

    二、基本原理

    1、创建组件

    var Component=React.createClass({
      render:function(){
        return (
          <div className="box">
            <h2>我是一个标题</h2>
            <contentInfo />//子组件     
          </div>    
        )    
      } 
    })   

    2、渲染组件(组件名称,要插入的节点)

    ReactDOM.render(<Component />, document.getElementById('app'));

    3、组件的状态,状态改变组件将重新渲染

    getInitialState: function() {
      return {liked: false};
    }

    4、组件的数据交互

    用this.props获取组件传递过来的数据

    var HelloMessage = React.createClass({
      render: function() {
        return <h1>Hello {this.props.name}</h1>;
      }
    });
    
    ReactDOM.render(
      <HelloMessage name="John" />,
      document.getElementById('example')
    );

    设置ref值,方便后续使用React.findDOMNode方法获取虚拟dom

    var MyComponent = React.createClass({
      handleClick: function() {
        var TextInput=React.findDOMNode(this.refs.myTextInput);
        TextInput.value="clicked";
      },
      render: function() {
        return (
          <div>
            <input type="text" ref="myTextInput" />
            <input type="button" value="Focus the text input" onClick={this.handleClick} />
          </div>
        );
      }
    });
    
    ReactDOM.render(<MyComponent />,document.getElementById('example'));

      5、组件的生命周期(初始化、运行中、销毁) 

    //初始化阶段函数介绍
    getDefaultProps();//只调用一次,实例之前共享引用
    getInitialState();//初始化每个实例特有的状态
    componentWillMount();//render之前最后一次修改状态的机会
    render();//只能访问this.props和this.state,只有一个顶层组件,不允许修改状态和DOM输出
    componentDidMount();//成功render并渲染完成真实DOM后触发,可修改DOM
    //运行中阶段函数介绍
    componentWillReceiveProps();//父组件修改属性触发,可以修改新属性和状态
    shouldComponentUpdate();//返回false会阻止render(提升性能)
    componentWillUpdate();//不能修改属性和状态
    render();//同初始化函数render
    componentDidUpdate();//同初始化函数componentDidMount
    //销毁阶段函数介绍
    componentWillUnmount();//在删除组件前进行清理操作,比如计时器和事件监听器
  • 相关阅读:
    [原]OpenSSL SSL连接初始化部分解析
    [转]C++日志系统log4cxx使用总结
    js打字效果
    抓取网页Email地址
    jQuery语法总结及注意事项
    Reporting Services中参数说明(因为在框架中要在新的窗口打开报表,所以这理主要是rc:LinkTarget)
    jQuery性能优化指南
    安装文件制作总结
    alert弹出层(待完善……)
    我的tab页面,Jquery方便扩展
  • 原文地址:https://www.cnblogs.com/gulei/p/5977722.html
Copyright © 2011-2022 走看看