基于react+如何搭建一个完整的前端框架(1)
1.使用 create-react-app 快速构建 React 开发环境
create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境。
create-react-app 自动创建的项目是基于 Webpack + ES6 。
执行以下命令创建项目:
$ cnpm install -g create-react-app
$ create-react-app my-app
$ cd my-app/
$ npm start 2.安装react-router-dom ,主要用来路由设置,安装完成以后就可以后期使用。 3.接下来需要单独创建一个设置全局路由的js,比如叫做router.js
这个js 里面需要导入react-router-dom模块,
关于react-router-dom的使用需要自行百度。
这个js 返回的是放置所有路由的一个大组件,这个组件替代</app>组件,因为你的任何东西都需要通过路由去展示的,可以看一下:
render(){
return (
<Router history={history}>
<div>
<Switch>
<Route path={ util.LOGIN_ROUTE } render={() => <Login/>} />
<Switch>
<Route path={url1} render={() => <layerout id=xxx/>} />
<Route path={url2} render={() => <layerout id=xxx/>/>
</Switch>
</Switch>
</div>
</Router>
);
}
};
返回的这个组件里面是路由适配到以后需要展示render的页面,但是其实这个页面里面的的很多东西都会放到另外一个组建比如上面的layerout组件,当页面路径是url1的时候,会渲染layerout组件,当是url2的时候也会渲染这个组建,但是每个页面里的内容是如何区分,就需要在layerout组件里面根据不同的路由进一步区分。当渲染组件的时候,就可以通过自定义属性给当前的组件内部传入一些需要的参数,比如id,这个组建内部通过props就可以拿到id 。 比如当前页面路径匹配到url1了,那么这个组件会render layerout组件, 那么layerout组件里里面是有什么构成呢?
一般一个页面就是导航区,完了加一个头部,内容区三部分,还有就是页脚。layerout里面就是放这些各个分区的。
render() {
return (
<div>
<navMenu />
<div>
<Header />
<div>
<container />
</div>
</div>
</div>
);
}
到这里很很明显了,你需要展示哪个页面,需要你在container里面根据不同的路由设置不同的组件显示在container里面。
导航的选中与否,其实也是这个原理。
接触没多久react,学习中。
基于react+如何搭建一个完整的前端框架(1)的更多相关文章
- 转载自 BotVS 「 珍藏版 」如何搭建一个完整的交易框架
[img]http://dn-filebox.qbox.me/8c218c119046b2a25df2d9c7b00c1e0fa6899bdd.png[/img]NO:01 交易策略 ≠ 交易系统. ...
- 如何基于Spring Boot搭建一个完整的项目
前言 使用Spring Boot做后台项目开发也快半年了,由于之前有过基于Spring开发的项目经验,相比之下觉得Spring Boot就是天堂,开箱即用来形容是绝不为过的.在没有接触Spring B ...
- 吴裕雄--天生自然SSH框架开发:搭建一个完整的SSH框架
下载jar包 spring框架的jar包:https://repo.spring.io/ hibernate框架的jar包:http://hibernate.org/orm/ struts2框架的ja ...
- react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)
react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redu ...
- 搭建一个交互式的前端构建环境.md
为了提高开发效率.减少重复的操作,现在几乎全部的前端项目都需要依赖一些构建工具来实现自动化打包,主流的有webpack, gulp, grunt等.加上各种各样的配置文件就会形成了一个相对复杂的构建环 ...
- 利用vue-cli配合vue-router搭建一个完整的spa流程
好文章备忘录: 转自:https://segmentfault.com/a/1190000009160934?_ea=1849098 demo源码:https://github.com/1590123 ...
- 搭建一个完整的Java开发环境
搭建一个完整的Java开发环境 作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,ecl ...
- 放弃antd table,基于React手写一个虚拟滚动的表格
缘起 标题有点夸张,并不是完全放弃antd-table,毕竟在react的生态圈里,对国人来说,比较好用的PC端组件库,也就antd了.即便经历了2018年圣诞彩蛋事件,antd的使用者也不仅不减,反 ...
- asp.netmvc 三层搭建一个完整的项目
接下来用 asp.net mvc 三层搭建一个完整的项目: 架构图: 使用的数据库: 一张公司的员工信息表,测试数据 解决方案项目设计: 1.新建一个空白解决方案名称为Company 2.在该解决方案 ...
随机推荐
- angularJs-未加载完成的页面显示混乱ng-bind
ng-bind 未初始化完成不加载数据,避免产生{{}}导致页面混乱 还是上边的例子,当前页面没有加载完成的时候,页面显示是不完整的会频繁的出现{{}}这样子的表达式语句,给用户的感觉很不和谐,所以使 ...
- Listfragment 列表标题 显示内容
activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- ceph分布式存储系统初探
前言 由于公司的业务调整,现在我又要接触ceph这个东西,由于我接手的是一个网盘类项目,所以分布式存储系统ceph就是我必须要学的了.现在压力还是比较大的,从业务直接到后台核心. 大概在这几天,我将c ...
- Spring Boot2.0之 yml的使用
yml Spring Boot 默认读取 .yml .properties 结尾的 yml非常好的作用,比properties更节约 结构清晰 server: port: 8090 con ...
- haproxy 官方文档查看
http://cbonte.github.io/haproxy-dconv/1.5/configuration.html#reqrep http://www.ttlsa.com/linux/hapro ...
- html5--2.9新的布局元素(5)-hgroup/address
html5--2.9新的布局元素(5)-hgroup/address 学习要点 了解hgroup/address元素的语义和用法 通过实例理解hgroup/address元素的用法 对照新元素布局与d ...
- 分享知识-快乐自己:oracle表分区详解
从以下几个方面来整理关于分区表的概念及操作: 1)表空间及分区表的概念: 2)表分区的具体作用: 3)表分区的优缺点: 4)表分区的几种类型及操作方法: 5)对表分区的维护性操作: 1):表空间及分区 ...
- tensorflow 线性回归 iris
线性拟合
- 发现eclipse红叉,查看markers发现Target runtime Apache Tomcat v8.0 is not defined
导入以前的项目(Markers中注意查看,就在console选项卡旁边),报以下错误,但不影响操作: Faceted Project Problem Target runtime Apa ...
- ActivityMq的使用(小例子)
一.ActivityMq的介绍: 1.什么是消息中间件?与传统的传输通讯有什么区别? 异步,无需等待,消息存放在队列里面. 2.为什么要使用消息中间件? 消息中间件可以解决高并发. 两种通讯方式:01 ...