配置 react-router-dom

 

我们开发一个 React 工程肯定不是一两个“页面”就可以满足需求的,所以我们需要一个在多个“页面”中跳转的功能,在使用 React 构建的单页面应用中,要想实现页面间的跳转,首先想到的就是使用路由。

考虑 React 工程中的路由时,通常会想到 react-router 和 react-router-dom,其中 React-router 提供了一些 router 的核心 Api,包括 Router, Route, Switch 等,但是它没有提供 Dom 操作进行跳转的 Api,而 React-router-dom 让我们可以通过dom的事件控制路由。

由于我们这次只是搭建开发环境,所以就不再做更多的介绍,现在来做一个简单的说明,首先我们需要安装 react-router-dom:

  1. $ yarn add react-router-dom

然后我们简单的使用一下,以验证安装的结果和使用的效果,我们先在跟组件 App 中的同目录下创建两个组件:

  1. // Home.js
  2. import React from 'react';
  3. import { Link } from 'react-router-dom';
  4.  
  5. export default () => (
  6. <div>
  7. <div>home page</div>
  8. <Link to="/product">go</Link>
  9. </div>
  10. );
  11.  
  12. // Product.js
  13. import React from 'react';
  14.  
  15. export default () => (
  16. <div>product page</div>
  17. );

然后我们在主组件 App 中引入相关的依赖并进行简单的使用:

  1. import React from 'react';
  2. import { BrowserRouter, Route } from 'react-router-dom';
  3.  
  4. import Home from './Home';
  5. import Product from './Product';
  6.  
  7. const App = () => (
  8. <BrowserRouter>
  9. <div>
  10. <Route path="/" exact component={Home} />
  11. <Route path="/product" exact component={Product} />
  12. </div>
  13. </BrowserRouter>
  14. );
  15.  
  16. export default App;

现在我们进入项目时会在根目录下,所以会自动进入 Home 页面,当我们点击 go 字段的时候就会跳转到 Product 页面,也就意味着已经安装成功了。

配置 Redux

 

在 React 中有一个单项数据流的概念,在大型应用中单靠 React 对于数据的管理并不理想,所以我们需要依赖 Redux 来进行管理。

Redux 是一个面向 JavaScript 应用的可预测状态容器,它能够让你的页面的数据管理更轻松,现在我们就来对它进行安装并进行简单的使用,首先我们安装 Redux:

  1. $ yarn add redux

然后我们在 src 目录下创建 store 目录,并添加 index.js 和 reducers.js 文件:

  1. // index.js
  2. import { createStore } from 'redux';
  3.  
  4. import reducer from './reducers';
  5.  
  6. const store = createStore(reducer);
  7.  
  8. export default store;
  9.  
  10. // reducers.js
  11. const defaultState = {
  12. text: 'Hello world',
  13. };
  14.  
  15. /* 必须返回一个纯函数 */
  16. export default (state = defaultState) => state;

最后我们改变一下 Home 组件以其来测试配置和使用的情况:

  1. import React from 'react';
  2. import { Link } from 'react-router-dom';
  3. import store from './store';
  4.  
  5. class Home extends React.Component {
  6. constructor(props) {
  7. super(props);
  8.  
  9. this.state = store.getState();
  10. const { text } = this.state;
  11. this.text = text;
  12. }
  13.  
  14. render() {
  15. return (
  16. <div>
  17. <div>{this.text}</div>
  18. <Link to="/product">go</Link>
  19. </div>
  20. );
  21. }
  22. }
  23.  
  24. export default Home;

现在页面中的正常情况会显示 store 存储的数据,也就是“Hello world”字样。

配置 其它

 

接下来会对配置的对象列出一个列表来,就不再像之前这样在页面中同时列出做出的修改,如果有兴趣的同学,可以直接点击 show me the code 直接查看源码,也可以查看提交历史中对应 commit 中的内容。

毕竟主要是配置,使用方法三两句就说不清楚了,所以暂且这样:

最后,如果在开发中有使用到 Git 的话,那么结合 huskylint-staged 配置代码检查工作流将会非常的棒,在我们配置完成之后,每当我们提交时,都会执行代码检查工作,如果代码的书写不规范的话将会取消本次提交。

当然这两者的功能并不仅仅如此,感兴趣的朋友可以点击上面的链接了解更多,这里我们先来简单的配置体验一下它的功能,首先还是安装依赖:

  1. $ yarn add husky lint-staged --dev

然后我们在 package.json 文件中对它们进行配置:

  1. {
  2. "scripts": {
  3. "precommit": "lint-staged"
  4. },
  5. "lint-staged": {
  6. "src/**/*.js": "eslint"
  7. }
  8. }

现在我们每次提价前就会执行代码检测啦,你可以特意书写一行不符合规范的代码来来进行测试。

环境的配置到这里就告一段落啦,这里更多的是介绍了 React 相关插件和库的安装,如果你想要知道最初的搭建步骤,你可以点击 搭建 webpack、react 开发环境(一) 来继续查看。如果你需要查看 webpack 方面的一些配置和插件的使用,以及一些可以优化的地方可以点击 搭建 webpack、react 开发环境(二) 来继续查看。

搭建 webpack、react 开发环境(三)的更多相关文章

  1. 从零开始搭建webpack+react开发环境

    环境主要依赖版本 webpack@4.8.1 webpack-cli@2.1.3 webpack-dev-server@3.1.4 react@16.3.2 babel-core@6.26.3 bab ...

  2. 搭建 webpack + React 开发环境

    说在开头 上个月断断续续的在研究webpack的配置,但是很多网上的文章基本上都是只说了开发环境的配置,而忽略了生产环境的配置.大致研究了一下门路,然后就来写一篇随笔让自己能在以后能有个地方可以做参考 ...

  3. Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统

    Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统 标签(空格分隔): Qemu ARM Linux 经过上一篇<Qemu搭建ARM vexpress开发环境(二)- ...

  4. 如何搭建 node,react 开发环境

    项目相关内容:Sublime + Node + React --注意:在 windows 操作系统中,如果把 node 安装在系统盘(一般是C盘),会导致 node 没有操作文件的权限的问题,如无法新 ...

  5. 「C语言」在Windows平台搭建C语言开发环境的多种方式

    新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 ...

  6. Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核

    Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文<Qemu搭建ARM vexpress开发环 ...

  7. Webpack笔记(二)——搭建React开发环境

    前几天一直在学习webpack,总算比之前学习的时候有了点收获,所以在昨天发布了一篇webpack入门笔记,今天继续使用webpack练了练手,搭建了一个React开发环境,如果还不熟悉的童鞋可以看一 ...

  8. 搭建 webpack、react 开发环境(二)

    配置处理样式文件   到目前为止,整个工程的配置已经差不多了,对于 React 更多相关的配置将在后面继续介绍,现在我们先来对目前的工程进行优化. 前面我们学习了搭建 webpack.react 开发 ...

  9. 搭建 webpack、react 开发环境(一)

    基本介绍   Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源,它可以将多种静态资源 JavaScript.css.le ...

随机推荐

  1. echarts改变图例位置

    只需要legend属性中修改如下几个示数即可: legend:{ orient:"horizontal", x:'right', y:' center', width:'100', ...

  2. tensorflow的reshape操作tf.reshape()

    在处理图像数据的时候总会遇到输入图像的维数不符合的情况,此时tensorflow中reshape()就很好的解决了这个问题. 更为详细的可以参考官方文档说明: numpy.reshape reshap ...

  3. 20180209-xml模块

    xml的用法操作如下: xml格式如下: <?xml version="1.0"?> <data> <country name="Liech ...

  4. 04.Linux-CentOS系统SSH连接问题

    问题:SSH远程连接时报错 Socket error Event: 32 Error: 10053.Connection closing...Socket close.Connection close ...

  5. 六、实现一个小功能 todolist

    1.创建一个新的Compnent 如果是通过 cli 创建的会自动加入,如果是手动创建的,需要自己加入. 2.实现添加效果 3.实现删除按钮 4.优化,把点击 添加 改为 回车 添加 5.优化,分成“ ...

  6. ltp-ddt smp_basic

    SMP_S_FUNC_DUAL_CORE source functions.sh; cmd="stress-ng --matrix 4 -t 10s --perf --matrix-size ...

  7. python-zmail发送邮件

    import zmail #发送测试报告到邮件 with open(r'F:\asus\auto_file\unittest_html\2019-06-30 10-31-03report.html', ...

  8. u-tools图床便捷生成markdown图片

    u-tools 图床 上传图片生成markdown图片非常便捷. 支持的图片服务器有几种,其中搜狗.网易和掘金的加载速度更快些: 也可以用阿里与和腾讯云的OSS; 其中网易生成图片不是原图尺寸好像被改 ...

  9. java list集合元素根据某些字段排序

    一.jdk1.6的环境下 新建ComparatorSort类,并实现Comparator接口,重写compare方法 降序排序:o1的元素>o2的元素,并返回-1:o1的元素小于o2的元素,并返 ...

  10. Kafka长文总结

    Kafka是目前使用较多的消息队列,以高吞吐量得到广泛使用 特点: 1.同时为发布和订阅提供搞吞吐量.Kafka的设计目标是以时间复杂度为O(1)的方式提供消息持久化能力的,即使对TB级别以上数据也能 ...