【一起来烧脑】一步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)]

posted @ 2019-07-20 06:24  达达前端  阅读(89)  评论(0编辑  收藏  举报