zoukankan      html  css  js  c++  java
  • 【一起来烧脑】一步React.JS学会体系

    [外链图片转存失败(img-cn4fbVDq-1563575047348)(https://upload-images.jianshu.io/upload_images/11158618-8c6f3d2b8ff0bec3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

    React.JS是用于构建用户界面的JavaScript库
    React.JS主要用于构建UI
    下载使用:React.JS下载地址

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8" />
        <title>Hello React!</title>
        <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
        <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
        <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
      </head>
      <body>
        <div id="example"></div>
        <script type="text/babel">
          ReactDOM.render(   
           <h1>Hello, world!</h1>,
            document.getElementById('example')
          );    
         </script>
      </body>
    </html>
    

    通过npm

    $ npm install -g cnpm --registry=https://registry.npm.taobao.org 
    
    $ npm config set registry https://registry.npm.taobao.org
    
    $ cnpm install [name]
    

    使用create-react-app快速构建
    create-react-app 自动创建的项目是基于 Webpack + ES6

    $ cnpm install -g create-react-app
    $ create-react-app my-app
    $ cd my-app/$ npm start
    

    React.JS使用JSX来替代常规的JavaScript

    使用JSX

    JSX看起来类似HTML。

    实例:

    ReactDOM.render(
        <h1>Hello, world!</h1>,
        document.getElementById('example')
    );
    

    样式

    React.JS 推荐使用内联样式

    var myStyle = {
        fontSize: 100,
        color: '#FF0000'
    };
    ReactDOM.render(
        <h1 style = {myStyle}></h1>,
        document.getElementById('example')
    );
    

    注释

    注释需要写在{}中

    数组

    JSX 允许在模板中插入数组,数组会自动展开所有成员

    实例:

    var arr = [
      <h1>123</h1>,
      <h2>welcome</h2>,
    ];
    ReactDOM.render(
      <div>{arr}</div>,
      document.getElementById('example')
    );
    

    组件使应用更容易管理。

    实例:

    var HelloMessage = React.createClass({
      render: function() {
        return <h1>Hello World!</h1>; 
      }
    }); 
    ReactDOM.render(
      <HelloMessage />, 
      document.getElementById('example')
    );
    

    如果需要向组件传递参数,可以使用this.props对象。

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

    状态

    class Clock extends React.Component {
      constructor(props) {
        super(props);    this.state = {date: new Date()};
    }
      
      render() {
        return (
          <div>
            <h1>Hello, world!</h1>
            <h2>现在是 {this.state.date.toLocaleTimeString()}.</h2>
          </div>
        ); 
      }
    }
     ReactDOM.render(
      <Clock />,
      document.getElementById('example')
    );
    

    React.JS Props

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

    可以通过getDefaultProps()方法为props设置默认值。

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

    React.JS API

    设置状态–setState

    替换状态–replaceState

    设置属性–setProps

    替换属性–replaceProps

    强制更新–forceUpdate

    获取DOM节点–findDOMNode

    判断组件挂载状态–isMounted

    组件生命周期状态

    组件的生命周期可以分为三个状态:

    mounting–已插入真实DOM

    updating–正在被冲洗渲染

    unmounting–已移出真实DOM


    请点赞!因为你们的赞同/鼓励是我写作的最大动力!

    欢迎关注达叔小生的简书!

    这是一个有质量,有态度的博客

    [外链图片转存失败(img-79UnLcN0-1563575047356)(https://upload-images.jianshu.io/upload_images/11158618-9ab0d3fef85d80ce?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

  • 相关阅读:
    逆袭之旅DAY31.XIA.JDBC
    逆袭之旅DAY30.XIA.集合
    亮晶晶幼儿园家校沟通平台的设计与实现
    逆袭之旅DAY28.XIA.异常处理
    LY.JAVA.DAY12.String类
    2018年7月23日-星期二
    LY.JAVA.DAY12.Scanner
    DAY27.XIA.面向對象
    职业生涯规划
    如何找到自己喜欢的职业
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11932349.html
Copyright © 2011-2022 走看看