目录结构

  下面是使用npx create-react-app web-app来创建的一个项目(已经删除了多余的文件)

web-app
├── node_modules
│   ├── .......
│   └── .......
├── package-lock.json
├── package.json
├── public
│   └── index.html
└── src
├── App.js
└── index.js

  其中node_mudole是保存各种库的目录,比如babel、react、react-dom

  

自定义组件

//导入react库
import React from 'react'; //定义一个组件(需要继承React.Component)
class App extends React.Component { //每组件必须要有一个render方法,return的内容就是该组件要展示的内容
//如果没有render方法,将会报错
render() {
return (
<div>
hello world
</div>
);
}
} //组件定义之后,要导出之后,在其他地方才能使用该组件
export default App;

  

使用组件

  使用组件的方法,很简单,就是<组件名 />的格式即可。

  比如在src/index.js中是这样使用组件的,

import React from 'react';
import ReactDOM from 'react-dom'; //导入自定义的组件
import App from './App'; //以<组件名/>的形式使用组件
ReactDOM.render(<App />, document.getElementById('root'));

  对于导入、导出组件的相关知识,可以参考:node基础 npm、module、exports、require

JSX(babel)

  在jsx的语法里面,可以使用js的表达式,注意是表达式,不是语句,比如if(1){return 2}是一个语句,并不是一个表达式

  至于判断是不是一个表达式,可以这样做:如果可以将其放在if或者while的条件判断位置,那么就是一个表达式,而不是一个语句。

  比如 1+2, 3>5都是表达式

  表示这样还不够,js的表达式要写在{  } 里面,jsx才会认得,比如下面这种情况:

render() {
return (
<div>
{ "hello " + "react " } //正确
hello world
{1+2} //正确
{if(1+2){return 123}} //错误
</div>
);
}

  注意上面的内容都是写在一个div里面,其实使用return返回出去的就是一个jsx对象,并且只能返回一个jsx对象,如果向下面这种情况,是返回两个jsx对象,会出错的:

render() {
return ( //出错,因为一次性只能返回一个jsx对象,下面的写法是返回两个jsx对象
<div>one</div>
<div>two</div>
);
}

  可以将两个jsx对象包含在一个div中,就可以解决问题了:

render() {
return ( //正确
<div>
<div>one</div>
<div>two</div>
</div>
);
}

  

分析一个react项目的更多相关文章

  1. React环境配置(第一个React项目)

    使用Webpack构建React项目 1. 使用NPM配置React环境 NPM及React安装自行百度 首先创建一个文件夹,the_first_React 进入到创建好的目录,npm init,然后 ...

  2. 从零开始搭建一个react项目

    Nav logo 120 发现 关注 消息 4 搜索 从零开始搭建一个react项目 96 瘦人假噜噜 2017.04.23 23:29* 字数 6330 阅读 32892评论 31喜欢 36 项目地 ...

  3. 如何架构一个 React 项目?

    编程有点像搞园艺.比起竭力去对付BUG(虫子),我们更愿意把一切弄得整洁有序,以免最后落得个身在荒野丛林中.低劣的架构会拖我们的后腿,也会使得BUG更容易钻进系统里去. 想要对你的项目进行架构,方法有 ...

  4. react 工程起步 安装chrome 开发调试工具 react developer tools 及初建一个react 项目...

    1.安装react 开发工具 1.下载    chrome      react developer tools 下载地址:https://pan.baidu.com/s/1eSZsXDC  下载好是 ...

  5. 脚手架创建一个React项目

    一.安装 1.安装node.js 官网地址 https://nodejs.org/en/ 进入后点击下载,官方网站会根据你的系统类型推荐最适合你安装的版本.(如果已经安装了node.js跳过此步)如下 ...

  6. 如何从0创建一个react项目

    1. 确保本机电脑安装了yarn和node: 2. 在需要安装的文件夹目录下输入:create-react-app  +(项目名称): PS:上图使用的软件为webStorm 3. 此时一个简单的re ...

  7. 重度使用示波器进行优化分析——一个DSDA项目回顾

    这是若干年前一个项目,最近有时间整理一下.回忆起来,印象最深刻的就是重度使用示波器辅助分析,进行优化. 项目背景是在原有项目3G+项目基础上,增加一颗2G+ Modem,使支持DSDA功能. 在介绍D ...

  8. 重度使用示波器进行优化分析——一个DSDA项目回顾

    这是若干年前一个项目,最近有时间整理一下.回忆起来,印象最深刻的就是重度使用示波器辅助分析,进行优化. 项目背景是在原有项目3G+项目基础上,增加一颗2G+ Modem,使支持DSDA功能. 在介绍D ...

  9. 初始化一个React项目(TypeScript环境)

    React将由三部分组成,其中,Redux是应用状态管理服务,React-Router用于路由映射,React View用于显示界面. 我们使用Facebook推荐的create-react-app来 ...

随机推荐

  1. web测试笔记

    WEB兼容性测试 一.客户端兼容性 1.浏览器的兼容性测试 a.内核角度 Tridnt内核:代表作IE.腾讯.遨游.世界之窗等 Gecko内核:代表作Firefox webkit内核:代表作Safar ...

  2. Java入门(一):Hello World !

    前言 从今天开始,准备写Java Web开发的系列文章,毕竟自己主攻的还是Java方向,Python只是业余学习的兴趣使然,在第二技能还没有培养成熟前,做好第一技能的巩固和提高是很有必要的.从正式入行 ...

  3. Git&GitHub语法大全

    目录 1. GitHub与Git万用语法 1)创建库 2)添加和提交到仓库 3)版本回退 4)缓存区和暂存区 5)撤销和删除文件 6)远程仓库 7)创建和合并分支 2. 更多Git语法 1. GitH ...

  4. 【项目 · Wonderland】立项报告

    [软件工程实践 · 团队项目] 第二次作业 团 队 作 业 原 文:http://www.cnblogs.com/andwho/p/7598662.html Part 0 · 简 要 目 录 Part ...

  5. ABAP on HANA之CDS Association和Path Expression

    本文阐述了ABAP CDS association的概念,并且展示了在CDS视图中和SQL语句中写路径表达式(Path Expression)代码的方法.我也会解释如何在CDS asociation中 ...

  6. java访问mysql数据库

    package com.mysql.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.R ...

  7. Flex读取txt文件里的内容(一)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/you23hai45/article/details/25248307  Flex读取txt文件里的内 ...

  8. Python:Day41 http、css

    HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. 2.请求协议 请求协议的格式如下: 请求首行: // ...

  9. gcd和exgcd和lcm

    Gcd▪ 欧几里得算法又称辗转相除法,用于计算两个正整数 a, b 的最大公约数.▪ 计算公式为 gcd(a,b) = gcd(b,a mod b).▪ 公式无需证明,记忆即可.▪ 如果要求多个数的最 ...

  10. argparse模块

    argparse模块是的编写用户友好的命令行接口非常容易.程序只需定义好它要求的参数,然后argparse将负责如何从sys.argv中解析出这些参数.argparse模块还会自动生成帮助和使用信息并 ...