React从入门到开发

搭建程序

create-react-app my-app
cd my-app
npm start

快速创建React单页面应用

1 第一个应用HelloWorld

// index.js
import React from 'react';
import ReactDOM from 'react-dom';

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

id为root的div <div id="root"></div>
调用ReactDOM.render()将React元素渲染进rootDOM节点中

2 自定义组件

import React from 'react';
class MyApp extends React.Component {
    render() {
        return (
            <div>
                请输入你的邮箱:<input/>
            </div>
        );
    }
};
export  default MyApp;

// index.js
import MyApp from './MyComponents/MyApp.js';
ReactDOM.render(
    <MyApp/>,
    document.getElementById('root')
);

在这个组件代码底部添加export default MyApp;抛出去
使用时引入这个组件import MyApp from './MyComponents/MyApp.js';

3 JSX语法

HTML语言直接写在 JavaScript 语言之中,不加任何引号

  • JSX的基本语法规则:
    • 遇到 HTML标签(以 < 开头),就用 HTML 规则解析;
    • 遇到代码块(以 { 开头),就用 JavaScript 规则解析
var arr = [
    <h2>Alice</h2>,
    <h2>Michel</h2>,
    <h2>jack</h2>,
];

ReactDOM.render(
    <div>{ arr }</div>,
    document.getElementById('root')
);

直接{ arrName }插入JavaScript 变量。如果是数组,直接展开展开

4 this.props

class Hello extends React.Component {
    render() {
        return <h1>你好啊 {this.props.name}</h1>
    };
}
ReactDOM.render(
    <Hello name='junchen'/>,
    document.getElementById('root')
)
  • React.createClass在最新版已经取消
  • 所有组件都必须有自己的 render() {###} 用于输出
  • 组件的第一个字母必须大写,否则会报错
  • 组件只能包含一个顶层标签,否则也会报错
    • return <h1>第一个</h1><p>第二个顶层类</p>
  • 组件的属性可以用this.props获取
    • 组件 class属性需要写成 className
    • for 属性要写成 htmlFor,因为它们的保留字。

5 this.state

组件作为状态机,状态变化触发渲染UI

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以下内容是我在学习和研究React时,对React的特性、重点和注意事项的提取、精练和总结,可以做为React特性...
    科研者阅读 8,309评论 2 21
  • GUIDS 第一章 为什么使用React? React 一个提供了用户接口的JavaScript库。 诞生于Fac...
    jplyue阅读 3,623评论 1 11
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,878评论 1 18
  • It's a common pattern in React to wrap a component in an ...
    jplyue阅读 3,319评论 0 2
  • 最近看了《我的前半生》和《七月与安生》,对于小三是闺蜜这种事有了一点小小的想法。首先,我没经历过这种事,也不会经历...
    王猫猫有只狗阅读 348评论 0 1