开始前
  • 安装 node.js;

  • 安装 cnpm;

  • 安装 yarn;
    安装完成yarn后, 将镜像替换成国内的:

    $ yarn config set registry 'https://registry.npm.taobao.org'
  • 安装 create-react-app:

    $ sudo cnpm install -g create-react-app// 查看安装版本
    $ create-react-app --version
    1.3.3

项目初始化

命令行切到需要创建项目的目录内, 然后执行:

// my-app 是项目的名称, 也是文件夹的名称
$ create-react-app my-app

// 命令行切到刚创建的项目
$ cd my-app

// 运行项目
// 执行以下命令会自动打开浏览器, 并防问 http://localhost:3000/
$ yarn run start

初始化生成的文件先不管, 做项目还是得好好的分目录的哟, 接下来安装react-router

因为, 是在浏览器内运行的, 所以安装react-router-dom; 命令行切到刚创建的项目目录内, 然后执行安装:

$ yarn add react-router-dom
// 我这里安装的是 ^4.1.2 版本的

好了, 路由也有了, 现在可以开始写项目啦.

开始上路

  • src目录内创建一个comonents目录, 用来放组件;

  • 创建我们自己的首页: 在components目录内创建一个Home目录, 然后再Home目录内创建一个Home.js, 写入以下内容:

    // 组件必须先 import 进 react;
    import React from 'react';const Home = () => (<div><h1>这是首页</h1></div>
    );export default Home;
  • 创建about页面: 在components目录内创建一个About目录, 然后再About目录内创建一个About.js, 写入以下内容:

    import About from 'react';const About = () => (<div><h1>这是关于页</h1></div>
    );export default About;
  • 现在我们有两个组件了, 但是还没办法在浏览器内防问, 接下来创建路由:
    先清空src/App.js内的内容, 然后写入以下内容:

    import React from 'react';
    import {BrowserRouter as Router,Route,
    } from 'react-router-dom';
    import Home from './components/Home/Home';
    import About from './components/About/About';const App = () => (<Router><div><Route exact path="/" component={Home} /><Route path="/about" component={About} /></div></Router>
    );export default App;
  • 现在命令行切到项目根目录, 执行yarn run start启动项目, 会自动在浏览器内防问 http://localhost:3000/, 这就是我们的 首页 组件哟, 可以手动修改url防问 关于页(http://localhost:3000/about) 组件.

公共组件

  • 我们创建了两个组件, 并且都有自己的独立路由, 但是要防问需要手动输入, 太麻烦啦, 那我们可以创建一个 导航 组件:
    components 目录下创建一个 Common 文件夹并创建 NavBar.js 内容如下:

    import React from 'react';
    import {Link,
    } from 'react-router-dom';const NavBar = (props) => (<ul><li><Link to="/">Home</Link></li><li><Link to="/about">About</Link></li><li>来源于: { props.title }</li></ul>
    );export default NavBar;
  • 现在我们有一个公共组件了, 接下来把它放到 HomeAbout 组件内:
    Home 内容如下:

    import React from 'react';
    import NavBar from '../Common/NavBar';const Home = () => (<div><NavBar title="首页" /><h1>这是首页</h1></div>
    );export default Home;

    About 内容如下:

    import React from 'react';
    import NavBar from '../Common/NavBar';const About = () => (<div><NavBar title="关于页" /><h1>这是关于页</h1></div>
    );export default About;

    现在命令行切到项目根目录, 执行yarn run start启动项目, 在浏览器内查看效果;

创建一个列表

虽然, 我们现在有一个组件了, 但是内容都特别单调, 接下来创建一个列表的组件:
components 目录下创建一个 List 文件夹并创建 List.js 内容如下:

import React from 'react';
import NavBar from '../Common/NavBar';const List = () => {const data = [{name: '小白',age: 5}, {name: '大黄',age: 3}];const dataDom = [<li key="1">1号</li>,<li key="2">2号</li>];return (<div><NavBar title="列表页" /><ul>{data.map((item, index) => (<li key={index}><strong>名字:</strong><span>{item.name}</span><strong>大小:</strong><span>{item.age}</span></li>))}{dataDom}</ul></div>);
};export default List;

创建完成后, 修改 src/App.js 将我们的列表组件添加到路由中:

import React from 'react';
import {BrowserRouter as Router,Route,
} from 'react-router-dom';
import Home from './components/Home/Home';
import About from './components/About/About';
import List from './components/List/List';const App = () => (<Router><div><Route exact path="/" component={Home} /><Route path="/about" component={About} /><Route path="/list" component={List} /></div></Router>
);export default App;

修改 src/components/Common/NavBar.js:

import React from 'react';
import {Link,
} from 'react-router-dom';const NavBar = (props) => (<ul><li><Link to="/">Home</Link></li><li><Link to="/about">About</Link></li><li><Link to="/list">List</Link></li><li>来源于: {props.title}</li></ul>
);export default NavBar;

现在命令行切到项目根目录, 执行yarn run start启动项目, 在浏览器内查看效果;

第一步就先到这里啦: 源码
React.js组件化开发第二步(添加样式及数据请求)

React.js组件化开发第一步(框架搭建)相关推荐

  1. 移动web端的react.js组件化方案

     背景: 随着互联网世界的兴起,web前端开发的方式越来越多,出现了很多种场景开发的前端架构体系,也对前端的要求日益增高,早已经不是靠一个JQuery.js来做前端页面的时代了,而今移动端变化最大,近 ...

  2. Vue.js组件化开发实践

    Vue.js组件化开发实践 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一 ...

  3. VUE.JS 组件化开发实践

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模 ...

  4. Vue.js 组件化开发

    三.组件化开发 1.1 组件化的实现和使用步骤 组件注册步骤解析 1.2 全局组件和局部组件 1.3 父组件和子组件 1.4 注册组件语法糖 1.5 组件模板抽离的写法 1.6 组件数据存放 1.7 ...

  5. React心得之降龙十八掌:第二式-飞龙在天( React组件化开发及相关概念)

    引言 (乾卦九五)<彖>曰:"'飞龙在天',大人造也." 学习了上一章,想必我们对于React有了一个初步的认识,了解了什么是React.什么是JSX.模块与组件.组件 ...

  6. 【Vue.js 知识量化】组件化开发 + 前端模块化

    Vue.js 组件化开发 组件化 认识组件化 注册组件 全局组件和局部组件 父子组件 组件数据 父子组件的通信 父->子:props 子->父:$emit() 父子组件的访问方式 $chi ...

  7. Vue/React组件化开发的一些思考

    组件化开发的优势 组件化开发利用了面向对象的威力,易于构建规模比较大的应用并且获得比较高的可维护性,可扩展性.Vue.React厂商及社区不但提供了组件化开发的框架,而且提供了易于起步并包含了从编码. ...

  8. 360奇舞团钟恒:选用Vue.js进行组件化开发,我们遇到了哪些坑?

    责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg#csdn.net. 欢迎加入"CSDN前端开发者"微信群,参与热点.难点技术交流.请加群主微信「Rachel_ ...

  9. Vue.js教程-组件化开发

    Vue.js教程-组件化开发 前言 Vue组件化 什么是组件化 Vue单页面开发的解释 组件化思想 组件的使用 原理 实际开发中的使用-父子组件 父子组件传递数据 父传子-props用法 子传父-th ...

最新文章

  1. 2019-11-18 自动控制原理的几个基本概念
  2. 如何测量程序运行时间?
  3. 一个很Low的通讯录管理系统(但是能用)C/C++单链表实现
  4. 《系统分析与设计方法》 练习计算投资回收分析
  5. jQuery事件绑定
  6. 关于反射中.getDeclaredContructor()返回构造方法顺序的问题(转)
  7. java mongodb-crud
  8. nginx的编译安装以及启动脚本编写
  9. windows(win10)下tesserocr的安装
  10. 去掉tomcat日志localhost_access_log修改去掉文件名日期
  11. 搭建Windows SVN服务器及TortoiseSVN使用帮助和下载
  12. Microsoft Visual Studio--- 未能加载文件 %CommonDir%\dte90a.olb。未能找到该文件,因此解决此问题的尝试,请重新安装此程序。
  13. python添加图片要怎么弄_python怎么实现添加图片
  14. 日落20181125001 - UGUI组件应用之Animation和CanvasGroup制作渐现渐隐效果
  15. 设置CPU频率和CPU运行核心数
  16. 详细设计-程序结构图
  17. Ms Sql Server 2000 个人绿色版 5.62
  18. 微信小程序基于OCR插件实现图文识别(超简单)
  19. Castle Monorail 缓存
  20. linux基础(四):shell简单命令;文件系统命令,系统操作命令,文本操作命令;文本处理命令

热门文章

  1. 80.简单搭建nodeJS服务,访问本地站点文件
  2. 全球互联网大面积瘫痪不再是虚幻
  3. ERROR 1442 (HY000):because it is already used by statement which invoked this stored function/tr
  4. Mybatis bug修正
  5. 详细解读Android中的搜索框(二)—— Search Dialog
  6. 设计模式(三)模版方法(行为型)
  7. Active Directory系列之五:Active Directory的主要还原
  8. 微软修复严重的Azure漏洞,可用于泄露客户数据
  9. CODESYS 工业自动化软件存在多个严重缺陷
  10. Transformer原理解析——一种Open AI和DeepMind都在用的神经网络架构