这几天因为赶时间 , 所以理解上可能有许多的误差 , 如果你不幸点进来了 , 请不要看我的代码 , 这几天我会重新修改 , 然后把错误的不足的 全部修正一下 .

/hwr/src/index.js

 import React from 'react';
import ReactDOM from 'react-dom'; // Choose a file from the path
import Detail from './pages/Detail'; //Automatic search path
import { Router, Route, IndexRoute } from 'react-router';
import createHistory from 'history/lib/createHashHistory';
import List from './pages/List'; ReactDOM.render(
<Router history={createHistory({ queryKey: false })}
onUpdate={() => window.scrollTo(0, 0)}>
<Route path="/" component={ List } />
<Route path="/detail/:repo" component={ Detail } />
</Router>,
document.getElementById('app')
); // 9 /* 创建历史记录 . 访问网页的记录 */
//11 /* 如果域名下面的是 / 的话就调用 list这个文件 开始渲染页面 */
//13 /* 如果域名下面直接是detail的话就讲detail后面的东西传给 repo 并且打开detail文件将 repo 作为参数穿进去 */

/hwr/src/pages/index.js

 import React from 'react';
import { Link } from 'react-router'; class List extends React.Component {
render() {
return (
<div>
<p>Please choose a repository from the list below.</p>
<ul>
<li><Link to="/detail/react">React</Link></li>
<li><Link to="/detail/react-native">React Native</Link></li>
<li><Link to="/detail/jest">Jest</Link></li>
</ul>
</div>
);
}
}
export default List; // 根据 index 文件来看 , 打开链接之后 首先进入的就是 List 渲染的页面 . // 这一部分的内容就时分的简单了 . 自己 不会的话 , 赶紧 请教一下别人 .

/hwr/src/pages/index.js

import React from 'react';
import ajax from 'superagent';
class Detail extends React.Component {
constructor(props) {
super(props);
this.state = {
name: [],
mode: 'test1',
test1: [],
test2: [],
test3: []
};
}
fetchFeed(type) {
const baseURL = 'http://192.168.1.100:3000';
ajax.get(`${baseURL}/${this.props.params.repo}/${type}`)
//ajax.get(`http://192.168.1.100:3000/${type}`)
.end((error, response) => {
console.dir(response.body[0].url)
if (!error && response) {
this.setState({ [type]: response.body });
} else {
console.log(`Error fetching ${type}`, error);
}
}
);
}
componentWillMount() {
var self = this; self.fetchFeed('test1');
self.fetchFeed('test2');
self.fetchFeed('test3');
}
showcommits() {
this.setState({ mode: 'test1' });
}
showforks() {
this.setState({ mode: 'test2' });
}
showpulls() {
this.setState({ mode: 'test3' });
}
findName(){ }
rendercommits() {
return this.state.test1.map((commit, index) => {
const author = commit.author||commit.owner ? commit.author : 'Anonymous';
return (<p key={index}>
<strong>{author}</strong>:
<a href={commit.url}>{commit.url}</a>.
</p>);
});
}
renderforks() {
return this.state.test2.map((fork, index) => {
const owner = fork.author ? fork.author : 'Anonymous';
return (<p key={index}>
<strong>{owner}</strong>:
<a href={fork.url}>{fork.url}</a>
</p>);
});
}
renderpulls() {
return this.state.test3.map((pull, index) => {
const user = pull.author ? pull.author : 'Anonymous';
return (<p key={index}>
<strong>{user}</strong>:
<a href={pull.url}>{pull.url}</a>.
</p>);
});
}
render() {
let content;
if (this.state.mode === 'test1') {
content = this.rendercommits();
} else if (this.state.mode === 'test2') {
content = this.renderforks();
} else {
content = this.renderpulls();
}
return (<div>
<button onClick={this.showcommits.bind(this)}>Show Commits</button>
<button onClick={this.showforks.bind(this)}>Show Forks</button>
<button onClick={this.showpulls.bind(this)}>Show Pulls</button>
{content}
</div>);
}
}
export default Detail; // 3 在 index 文件中的 repo 作为 属性传到了这里的构造函数 props
// 16 this.props.params.repo 调用this下的 , props 属性 , 下的 repo ( 具体是什么我百度了一下 , 但是看的不懂 , 明天问一下老师 . ) // 自己分析 15 16 行 很简单 , 17行的error指的是 ajax.get 下载网页是否成功的状态( 我估计应该是储存的网页状态码 例如 200(正常) , 404( 服务器无法提供信息 ) 503 ( 服务器拒绝提供服务 , 爬虫常见 ) ) , response 用于储存 , 下载成功之后 的内容

JS - The react framework的更多相关文章

  1. WHAT IS THE DIFFERENCE BETWEEN REACT.JS AND REACT NATIVE?

    Amit Ashwini - 09 SEPTEMBER 2017 React.js was developed by Facebook to address its need for a dynami ...

  2. D3.js(v3)+react框架 基础部分之数据绑定及其工作过程与绑定顺序

    数据绑定: 将数据绑定到Dom上,是D3最大的特色.d3.select和d3.selectAll返回的元素的选择集.选择集上是没有数据的. 数据绑定就是使被选择元素里“含有”数据. 相关函数有两个: ...

  3. immutable.js 在React、Redux中的实践以及常用API简介

    immutable.js 在React.Redux中的实践以及常用API简介 学习下 这个immutable Data 是什么鬼,有什么优点,好处等等 mark :  https://yq.aliyu ...

  4. arcgis api 4.x for js 结合 react 入门开发系列react全家桶实现加载天地图(附源码下载)

    基于两篇react+arcgis的文章介绍,相信大家也能体会两者的开发区别了.在“初探篇”中作者也讲述了自己的选择,故废话不多说,本篇带大家体验在@arcgis/webpack-plugin环境下,使 ...

  5. Vue.js与React的全面对比

    Vue与React的对比 Vue.js与React.js从某些反面来说很相似,通过两个框架的学习,有时候对一些用法会有一点思考,为加深学习的思索,特翻阅了两个文档,从以下各方面进行了对比,加深了对这两 ...

  6. RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景?

    RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景? - 知乎 https://www ...

  7. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  8. 网页的cdn引用地址,js,react,bootstrap

    react+----这三个够用了 <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js">< ...

  9. arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)

    你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...

随机推荐

  1. 【转】Linux下XenServer管理工具安装

    转载文章 - Linux下XenServer管理工具安装 Xen-Server 6.5 虚拟机安装Linux系统 vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) ...

  2. Swift和Objective-C混编注意

    前言 Swift已推出数年,与Objective-C相比Swift的语言机制及使用简易程度上更接地气,大大降低了iOS入门门槛.当然这对新入行的童鞋们来讲,的确算是福音,但对于整个iOS编程从业者来讲 ...

  3. Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  4. javascript 对象和数组(花括号、方括号)

    1. javascript对象定义 var a = {var a = "test", var b = "test"} 2. javascript数组定义 var ...

  5. MySql查找几个字段的值一样的记录

    ),name,class,charge_start,charge_end ) ; 注意:having在这里起到很大的作用,只有在having中,才可以对类似sum(),count()等等复合函数的结果 ...

  6. H5网页动画制作(页面切换、效果等)

    网址 http://www.ih5.cn/#mine/home/194080 13482289820 视频教程 http://file.ih5.cn/?nid=713629&key=aef10 ...

  7. 搭建SSH框架所需Jar包及其解释

    SSH2 ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-2.1.8.1.jar struts2 ...

  8. 关于Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的问题

    找不到mysql socket的问题,我最近碰到了好多次重装系统以前,我的mysql,apache,php都是自己编译安装的,当时并没有碰到这些问题,重装系统以后,我的mysql是通过yum安装的,a ...

  9. bzoj 2143: 飞飞侠

    #include<cstdio> #include<iostream> #include<queue> #define inf 1000000000 #define ...

  10. libpng交叉编译安装

    tar xzf libpng-1.5.22.tar.gz cd libpng-1.5.22 mkdir tmp 打开Makefile文件并修改CC=arm-linux-gcc ./configure ...